質問

どのようにして、エラーの原因となったと.NETはその.exesをコンパイルする方法と、このことも可能である何行番号?

表示していました

ないうちcrappedサブを表示するException.Messageのための自動化された方法がありますか?

try
{
  int x = textbox1.Text;
}
catch(Exception ex)
{
     MessageBox.Show(ex.Message);
}
役に立ちましたか?

解決

フルスタックトレースを取得するにはex.ToString()を使用します。

あなたは(これは、プロジェクトのビルドプロパティのオプションです)行番号を取得するには、さえリリースモードでは、デバッグシンボル(.PDBファイル)をコンパイルする必要があります。

他のヒント

、与えられた例外のスタックトレースを参照してください Eを使用します。 StackTraceする

あなたはより詳細な情報が必要な場合は、

は、システムを使用することができます.Diagnostics.StackTrace のクラス(ここではあなたがしようとするためのいくつかのコードがある):

try
{
    throw new Exception();
}
catch (Exception ex)
{
    //Get a StackTrace object for the exception
    StackTrace st = new StackTrace(ex, true);

    //Get the first stack frame
    StackFrame frame = st.GetFrame(0);

    //Get the file name
    string fileName = frame.GetFileName();

    //Get the method name
    string methodName = frame.GetMethod().Name;

    //Get the line number from the stack frame
    int line = frame.GetFileLineNumber();

    //Get the column number
    int col = frame.GetFileColumnNumber();
}
組み立てのために利用できるPDBファイルがある場合は、

こののみ動作します。プロジェクトのプロパティを参照してください - ビルド]タブを - 高度な - 。デバッグ情報の選択PDBファイルがあることを確認する

あなたが使用している場合は 'のStackTrace' と作業ディレクトリに.PDBファイル、スタックトレースは、行番号が含まれている必要があります含まれています。

string lineNumber=e.StackTrace.Substring(e.StackTrace.Length - 7, 7);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top