【问题标题】:.NET Unhandled Exception Dialog not Appearing.NET 未处理的异常对话框未出现
【发布时间】:2009-09-29 21:45:28
【问题描述】:
我正在开发一个 .NET 4.0 Beta 1 应用程序。当应用程序在没有附加调试器的情况下运行并且发生未处理的异常时,应用程序崩溃而从未显示未处理的异常对话框(显示调用堆栈和引发的异常的对话框)。
我知道这种行为在生产中是可取的,但现在我正在尝试调试一些在未附加调试器时发生的令人讨厌的错误。
有没有办法让这个对话框在出现未处理的异常时出现?
谢谢
编辑:这是一个 WPF 应用程序。现在我正在监听 UnhandledException 事件,但是在应用程序执行完处理程序后,它仍然会崩溃。该对话框提供了继续的选项(我感兴趣的一件事是)。
【问题讨论】:
标签:
c#
.net
exception-handling
.net-4.0
【解决方案1】:
如果它是一个 winforms 应用程序,那么您可以为 AppDomain 设置一个错误处理程序来捕获/处理所有未捕获的异常。
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//deal with e.ExceptionObject for info
}
【解决方案2】:
尝试将处理程序附加到 Application.ThreadException(对于 Windows 窗体应用程序)和/或 System.AppDomain.CurrentDomain.UnhandledException(对于控制台应用程序)。