仅显示异常堆栈跟踪的最后一行

发布于 2024-09-28 22:51:05 字数 612 浏览 4 评论 0原文

我在收集有关代码中生成的未处理异常(非常罕见)的信息时遇到了一些麻烦。我已经按照标准方式设置了处理程序。

总的来说,我有:

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionProcessor);

处理程序函数是:

public void ExceptionProcessor(object sender, UnhandledExceptionEventArgs e)
{
    Log(((Exception)e.ExceptionObject).StackTrace);
}

但我得到的只是一行(并不总是相同的)。谷歌搜索显示,这些行位于 .Net Framework 库的深处,并且是堆栈跟踪的最后一行。因此,关于我的代码的所有实际有用的信息都丢失了。有谁知道什么可能导致这种行为?

我最近收到的消息说它无法将 System.Threading.AutoResetEvent 转换为 System.Threading._ThreadPoolWaitOrTimerCallback。

谢谢。

I am having some trouble collecting information on an unhandled exception being generated (very rarely) in my code. I have set up an the handler pretty much the standard way.

In the main I have:

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionProcessor);

And the handler function is:

public void ExceptionProcessor(object sender, UnhandledExceptionEventArgs e)
{
    Log(((Exception)e.ExceptionObject).StackTrace);
}

But all I ever get is a single line (not always the same one). Googling revealed that those lines are deep inside the .Net Framework libraries and are meant to be the very last line of the stack trace. So, all of the actually useful information about my code is missing. Does anyone know what could be causing this behaviour?

The line I got most recently says that it can't cast System.Threading.AutoResetEvent to System.Threading._ThreadPoolWaitOrTimerCallback.

Thanks.

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

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

发布评论

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

评论(3

念三年u 2024-10-05 22:51:05

这很奇怪。 e.ExceptionObject 的类型是什么?这是自定义异常吗?

我敢打赌,在某些情况下,您的实际兴趣异常会被捕获,然后重新抛出到某个地方......

That's quite strange. What is the type of e.ExceptionObject? Is it a custom exception?

My bet is that there's some situation occurring where your actual exception of interest is being caught and then re-thrown somewhere...

从此见与不见 2024-10-05 22:51:05

我有时使用 e.tostring() 将整个异常详细信息写入日志中。尝试一下..

I sometimes use e.tostring() to write the whole exception details into the log. try that..

一抹苦笑 2024-10-05 22:51:05

你记录内部异常吗?每个异常都有 InnerException 属性,该属性可能包含另一个异常。

Do you log inner exceptions? Each exception has InnerException property which may contain another exception.

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