小编典典

如何获取引发异常的行号?

all

在一个catch块中,如何获取引发异常的行号?


阅读 92

收藏
2022-05-30

共1个答案

小编典典

如果您需要的不仅仅是从 Exception.StackTrace
获得的格式化堆栈跟踪的行号,您可以使用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 文件时才有效。

2022-05-30