【发布时间】:2009-11-21 21:10:23
【问题描述】:
我想知道是否可以将异常中的字符串 StackTrace 转换为更结构化的数据对象?
或者有没有一种方法可以在我捕获异常时获取此信息? 也许使用反射的东西?
谢谢!
【问题讨论】:
标签: c# exception stack-trace
我想知道是否可以将异常中的字符串 StackTrace 转换为更结构化的数据对象?
或者有没有一种方法可以在我捕获异常时获取此信息? 也许使用反射的东西?
谢谢!
【问题讨论】:
标签: c# exception stack-trace
查看System.Diagnostics.StackTrace 课程。您可以创建对象并遍历框架。
StackTrace st = new StackTrace();
foreach (var frame in st.GetFrames())
{
Console.WriteLine(frame.GetFileName().ToString()
+ ":"
+ frame.GetFileLineNumber().ToString());
}
【讨论】:
将StackTrace 类与接受Exception 的构造函数一起使用:
static void ShowExceptionStackTrace(Exception ex)
{
var stackTrace = new StackTrace(ex, true);
foreach (var frame in stackTrace.GetFrames())
Console.WriteLine(frame.GetMethod().Name);
}
【讨论】:
本质上,如果您想要一个一致的解决方案,那么您就不走运了。
您可以通过存储stack trace on exception construction 获得大杂烩解决方案。
但是,框架中没有在抛出异常时调用的钩子。
【讨论】: