代码之家  ›  专栏  ›  技术社区  ›  Andy

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

  •  0
  • Andy  · 技术社区  · 16 年前

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

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

    1 回复  |  直到 16 年前
        1
  •  1
  •   SLaks    16 年前

    你需要使用 StackTrace 班级。

    例如:

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

    此代码将找到第一个具有可用行号信息的帧,或者 null ,如果没有任何帧有行号。

    然后你可以打电话给 methods 的 StackFrame 对象以获取更多信息。请注意,源信息通常只在调试版本中可用。

    推荐文章