我们有一个很大的应用程序,为了确保我们的客户没有消息" XXX已停止工作",我们添加了一些处理程序(我们记录了一些错误和其他一些东西) )。
工作正常,我们已经解决了很多这样的问题(通过分析异常到达后的日志)。但最近,有人设法让#34; XXX已停止工作"消息无论如何。
目前我们有以下实施方案:
<camel:setBody>
<camel:simple>${bodyAs(null)}</camel:simple>
</camel:setBody>
<toD uri="http://your-web-service"/>
这是在我们申请的最初阶段完成的。
我的问题:你有没有看到我可以有一个例外显示提到的弹出窗口(&#34; XXX已经停止工作&#34;)而没有进入这个处理程序的情况?
答案 0 :(得分:1)
“我们申请的开始”是什么意思?
我发现在罕见的occaision上,AppDomain
和Application
处理程序即使在Main
函数中仍然会失败。一种解决方法是将它们放在与入口点相同的类的静态构造函数中,因为这甚至会抢占Main
。
无法捕获一些异常,例如最明显的Stack Overflow,这将阻止捕获和日志记录的发生。如果程序进入无限递归循环,这种情况最常发生。
请参阅List of exceptions that CAN'T be caught in .NET上的问题,因为它可能会对此有所了解。