我使用以下代码来捕获我的 VS2012 C# 程序中的任何未处理的错误:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
在事件处理程序中,我向用户显示一条消息,并在某些情况下通过电子邮件向自己发送 StackTrace,后面总是跟一个Application.Exit();
在示例中
throw new System.Exception("Parameter cannot be null");
错误处理程序已成功调用,但是在调试时它仍然会在调用我的错误处理程序后将错误突出显示为未处理。我可以理解这可能是开发环境的正确行为。但是,在构建项目时,它会执行类似的操作,即成功调用了我的消息框/电子邮件,但随后我从 Windows 7 获得了程序崩溃对话框(带有关闭/重新启动/调试选项)。
我了解 Application.Exit() 只是向所有线程发送一条消息以关闭。我如何向程序表明它应该忽略这个错误(因为它已经被处理了)?
提前致谢!