如何识别发生异常的行号,并在异常周围显示一段代码?
我想实现一个自定义的异常处理程序页面,它将显示堆栈跟踪,我正在寻找实现上述目标的最简单方法。虽然大部分信息都可以通过异常对象获得,但是源代码信息在那里不可用。
你需要使用 StackTrace 班级。
例如:
var st = new StackTrace(exception, true); var sourceFrame = Enumerable.Range(0, st.FrameCount).FirstOrDefault(i => st.GetFrame(i).GetFileLineNumber() > 0);
此代码将找到第一个具有可用行号信息的帧,或者 null ,如果没有任何帧有行号。
null
然后你可以打电话给 methods 的 StackFrame 对象以获取更多信息。请注意,源信息通常只在调试版本中可用。
StackFrame