未处理的异常未被`Application.ThreadException`捕获?

时间:2016-01-28 14:27:20

标签: c# exception exception-handling

我们有一个很大的应用程序,为了确保我们的客户没有消息" XXX已停止工作",我们添加了一些处理程序(我们记录了一些错误和其他一些东西) )。

工作正常,我们已经解决了很多这样的问题(通过分析异常到达后的日志)。但最近,有人设法让#34; XXX已停止工作"消息无论如何。

目前我们有以下实施方案:

<camel:setBody>
    <camel:simple>${bodyAs(null)}</camel:simple>
</camel:setBody>
<toD uri="http://your-web-service"/>

这是在我们申请的最初阶段完成的。

我的问题:你有没有看到我可以有一个例外显示提到的弹出窗口(&#34; XXX已经停止工作&#34;)而没有进入这个处理程序的情况?

1 个答案:

答案 0 :(得分:1)

“我们申请的开始”是什么意思?

我发现在罕见的occaision上,AppDomainApplication处理程序即使在Main函数中仍然会失败。一种解决方法是将它们放在与入口点相同的类的静态构造函数中,因为这甚至会抢占Main

无法捕获一些异常,例如最明显的Stack Overflow,这将阻止捕获和日志记录的发生。如果程序进入无限递归循环,这种情况最常发生。

请参阅List of exceptions that CAN'T be caught in .NET上的问题,因为它可能会对此有所了解。