C#如何获取抛出异常的行号?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

在一个catch块中,我怎样才能得到引发异常的行号?

提问于
用户回答回答于

如果需要的行号不仅仅是从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文件时才有效。

用户回答回答于

简单,使用Exception.ToString()函数,它将在异常描述之后返回行。

还可以检查程序调试数据库,因为它包含有关整个应用程序的调试信息/日志。

扫码关注云+社区