是否可以从Exception.StackTrace中提取一些结构化信息?

时间:2009-11-21 21:10:24

标签: c# exception stack-trace

我想知道是否可以将异常中的字符串StackTrace转换为更结构化的数据对象?

或者是否有一种方法可以在我捕获异常时获取此信息? 也许使用反射的东西?

谢谢!

3 个答案:

答案 0 :(得分:3)

查看System.Diagnostics.StackTrace课程。您可以创建对象并遍历框架。

StackTrace st = new StackTrace();
foreach (var frame in st.GetFrames())
{
    Console.WriteLine(frame.GetFileName().ToString()
        + ":"
        + frame.GetFileLineNumber().ToString());
}

答案 1 :(得分:2)

使用StackTrace类和构造函数接受Exception

static void ShowExceptionStackTrace(Exception ex)
{
    var stackTrace = new StackTrace(ex, true);

    foreach (var frame in stackTrace.GetFrames())
        Console.WriteLine(frame.GetMethod().Name);
}

答案 2 :(得分:1)

基本上,如果你想要一致的解决方案,那你就不走运了。

您可以通过存储stack trace on exception construction来获得一个hodge podge解决方案。

但是,在抛出异常时,框架中没有挂钩。