gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:26 25 4
gpt4 key购买 nike

我们有一个很大的应用程序,为了确保我们的客户不会收到“XXX 已停止工作”的消息,我们添加了一些处理程序(我们在其中记录了一些错误和一些其他内容)。

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

目前我们有以下实现:

Application.ThreadException += HandleUnhandleException;
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException += HandleUnhandleException;

这是在我们应用程序的一开始就完成的。

我的问题:您是否看到任何情况下我可以在不进入此处理程序的情况下显示提及的弹出窗口(“XXX 已停止工作”)?

最佳答案

“开始我们的应用程序”是什么意思?

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

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

请参阅 List of exceptions that CAN'T be caught in .NET 上的问题因为它可能会对此提供更多启示。

关于c# - 未处理的异常未被 `Application.ThreadException` 捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com