1. ホーム
  2. c#

[解決済み】例外が発生した行番号を取得するにはどうすればいいですか?

2022-04-04 07:18:56

質問

での catch ブロックの中で、例外が発生した行番号を取得するにはどうすればよいですか?

解決方法を教えてください。

Exception.StackTraceから得られる整形されたスタックトレース以外にも行番号が必要な場合、その行番号は スタックトレース クラスがあります。

try
{
    throw new Exception();
}
catch (Exception ex)
{
    // Get stack trace for the exception with source file information
    var st = new StackTrace(ex, true);
    // Get the top stack frame
    var frame = st.GetFrame(0);
    // Get the line number from the stack frame
    var line = frame.GetFileLineNumber();
}

これは、アセンブリに利用可能なpdbファイルがある場合にのみ動作することに注意してください。