我目前正在维护一个 WinForms 应用程序,它侦听Application.ThreadException
事件以捕获 GUI 线程上未处理的异常。
现在事情一直按预期工作,直到最近。但是最近,这个事件不再在一些生产盒子上适当地提出;当 GUI 线程上出现未处理的异常时,应用程序会跳过处理程序并崩溃。奇怪的是,我能够在我的(新的)开发盒上重现这一点,但有些机器实际上正在正确引发事件。
我可以通过像这样显式设置策略来使行为一致:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
但我很想知道是什么控制了默认策略。MSDN 对“应用程序配置文件”做了模糊的暗示,但在我们的 app.config 或我知道的任何其他配置文件中没有这样的策略设置。
是什么导致这种不一致的行为?