我想要为我的应用程序添加 "AppDomain.CurrentDomain.UnhandledException
" 处理程序。如果我将错误记录到文本文件中,则可以正常工作。但是,当我尝试使用 MessageBox 时,它从未弹出。这是 .Net 的另一个 bug 吗?有什么想法吗?
这是我的代码示例:
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
这是我的处理程序方法:
static void CurrentDomain_UnhandledException (object sender, UnhandledExceptionEventArgs e)
{
try
{
Exception ex = (Exception)e.ExceptionObject;
MessageBox.Show("Whoops! Please contact the developers with "
+ "the following information:\r\n\r\n" + ex.Message + ex.StackTrace,
"Fatal Error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
finally
{
Application.Exit();
}
}
编辑: 我尝试了所有可能的选项,但仍然无法看到MessageBox。现在的问题是当我从Visual C#运行它(调试模式)时,它可以完美地显示弹出框。但当我直接从debug/release文件夹运行应用程序时,它不会显示MessageBox,并且应用程序会一直运行,就好像没有发生错误一样...