.NET异常处理程序页面:如何显示带有异常的行号?

时间:2010-01-01 13:50:17

标签: asp.net exception-handling

如何识别行号。异常发生的地方,并在异常周围显示一段代码?

我想实现一个自定义异常处理程序页面,它将显示堆栈跟踪,我正在寻找完成上述操作的最简单方法。虽然大多数信息都可以通过Exception对象获得,但源代码信息在那里不可用。

1 个答案:

答案 0 :(得分:1)

您需要使用StackTrace类。

例如:

var st = new StackTrace(exception, true);

var sourceFrame = Enumerable.Range(0, st.FrameCount).FirstOrDefault(i => st.GetFrame(i).GetFileLineNumber() > 0);

此代码将找到第一个可用行号信息的帧,如果没有任何帧都有行号,则会找到null

然后,您可以调用StackFrame对象的methods以获取更多信息。请注意,源信息通常仅在调试版本中可用。