我有一个非常大的C#Winform应用程序(包含数千个异常和错误弹出窗口)。弹出错误时,我有什么方法可以监视此应用程序?这样我就可以消失并在捕获后输出一些信号。
答案 0 :(得分:0)
Application.ThreadException (事件),即:
在引发未捕获的线程异常时发生。
...
它使用 ThreadException 事件处理UI线程异常,并且 UnhandledException 事件以处理非UI线程异常。
在here上了解有关此内容的更多信息。
这是示例代码:
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.Run(new Form1());
}
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
MessageBox.Show(e.Exception.Message, "Unhandled Thread Exception");
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
MessageBox.Show((e.ExceptionObject as Exception).Message, "Unhandled UI Exception");
}
注意
因为这是一个静态事件,所以必须分离事件处理程序 处理您的应用程序时,否则将导致内存泄漏。