在try..catch中获取Exception对象,使其包含FULL stacktrace,当前已将其截断
|
有人可以帮忙吗?
我正在尝试在try..catch的范围内获取完整的stacktrace。目前,它被截断为仅包含错误所在的当前方法。
让我解释一下。目前,我的堆栈跟踪包含发生错误的方法“第三”,但不包括第一和第二,我相信这是设计使然。
private void First()
{
this.Second();
}
private void Second()
{
this.Third();
}
private void Third()
{
try
{
throw new SystemException(\"ERROR HERE!\");
}
catch (Exception ex)
{
// I WILL LOG THE EXCEPTION object \"EX\" here ! but ex.StackTrace is truncated!
}
}
我已经看到了许多技巧来获取STRING中的完整stacktrace,但是问题是我的日志记录框架期望对象的类型为“ Exception \”,但是具有异常的变量(ex)有效,但是StackTrace属性被截断了。
无论如何,我可以收到带有FULL Stacktrace的FULL异常,因此我仍然可以沿我的\“ EX \”发送,但是这一次它将具有未删节的stacktrace。
UnhandledErrror事件似乎可以正常工作,好像我到达这里时,异常具有堆栈跟踪并已完全填充...
我真的很感激任何反馈。
没有找到相关结果
已邀请:
4 个回复
恋裂
在这种情况下的输出为:
更新:我突然感到怀疑,并尝试了迄今为止提出的所有解决方案。它们都是可行的,尽管Environment.StackTrace是最简单的。输出结果如下所示:
渐首洽陈染
当前方法可能会被添加两次,如果这样,请从其中一个属性中删除一行。
帆攀缺锯欧
查看本文以获取更多信息: StackStace类 希望这可以帮助。
呢率篓舍烫