AppDomain.CurrentDomain.UnhandledException 未经调试不会触发
我有一个 .NET 程序,其事件处理程序绑定到 Application.CurrentDomain.UnhandledException。 当通过调试运行程序时,当抛出未处理的异常时会触发此事件。但是,在不进行调试的情况下运行时,该事件不会触发。
我的问题是什么?
谢谢, 安德鲁
I have a .NET program with an event handler bound to Application.CurrentDomain.UnhandledException.
When running the program with debugging, this event fires when an unhandled exception is thrown. However, when running without debugging, the event does not fire.
What is my problem?
Thanks,
Andrew
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我假设您没有使用
Application.SetUnhandledExceptionMode()
- 只需将其设置为UnhandledExceptionMode.ThrowException
。更新
我刚刚编写了一个小型测试应用程序,发现没有任何东西可以正常工作。您可以尝试用此测试代码重现您的错误吗?
I assume you have not set the correct exception handling mode using
Application.SetUnhandledExceptionMode()
- just set it toUnhandledExceptionMode.ThrowException
.UPDATE
I just wrote a small test application and found nothing to work unexscpected. Could you try to reproduce your error with this test code?
也许异常是在应用程序中的单独线程中引发的。我们已经看到了当线程内发生未处理的异常时应用程序只是“停止”的问题(意味着:一秒钟它还在那里,另一秒钟它就消失了)。在这种情况下,甚至未触发的异常处理程序也不会被触发。
Maybe the exception is thrown within a separate thread in your application. We've seen the problem of an application just "stopping" (means: one second it's there, the other second it's gone) when an unhandled exception occurs within a thread. In that case, not even the unhandled exception handler got triggered.