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

发布于 2024-08-12 05:20:33 字数 105 浏览 4 评论 0原文

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

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

谢谢!

I was wondering if it's possible to convert the string StackTrace in the exception to a more structured data object?

Or is there a method that can get me this information while I am catching the exception?
Maybe something using reflection?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦断已成空 2024-08-19 05:20:33

使用带有接受 Exception 的构造函数的 StackTrace 类:

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

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

Use StackTrace class with constructor accepting Exception:

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

    foreach (var frame in stackTrace.GetFrames())
        Console.WriteLine(frame.GetMethod().Name);
}
溺渁∝ 2024-08-19 05:20:33

查看 System.Diagnostics.StackTrace 类。您可以创建对象并在框架上行走。

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

Check out the System.Diagnostics.StackTrace class. You can create the object and walk over the frames.

StackTrace st = new StackTrace();
foreach (var frame in st.GetFrames())
{
    Console.WriteLine(frame.GetFileName().ToString()
        + ":"
        + frame.GetFileLineNumber().ToString());
}
〆一缕阳光ご 2024-08-19 05:20:33

从本质上讲,如果您想要一个一致的解决方案,那么您就不走运了。

您可以通过存储堆栈跟踪来获得大杂烩解决方案关于异常构造。

但是,框架中没有在引发异常时调用的钩子。

Essentially, if you want a consistent solution you are out of luck.

You can get a hodge podge solution by storing the stack trace on exception construction.

But, there are no hooks in the framework that are called when an exception is thrown.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文