我正在研究.NET 4.0 Beta 1应用程序。当应用程序在没有附加调试器的情况下运行并且发生未处理的异常时,应用程序崩溃而不会显示未处理的异常对话框(显示调用堆栈和抛出的异常的对话框)。
我理解这种行为在生产中是可取的,但是现在我正在尝试调试未附加调试器时发生的一些令人讨厌的错误。
当存在未处理的异常时,是否有办法显示此对话框?
由于
编辑:这是一个WPF应用程序。现在我正在侦听UnhandledException事件,但是在应用程序完成执行处理程序之后,它仍然会崩溃。对话框提供了继续选项(我感兴趣的一件事就是那个)。
答案 0 :(得分:2)
如果是winforms应用程序,那么您可以为AppDomain设置一个错误处理程序来捕获/处理所有未捕获的异常。
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//deal with e.ExceptionObject for info
}
答案 1 :(得分:0)
尝试将处理程序附加到Application.ThreadException(对于Windows窗体应用程序)和/或System.AppDomain.CurrentDomain.UnhandledException(对于控制台应用程序)。