如何监视WInForm应用程序中的弹出错误

时间:2018-10-10 07:17:20

标签: c# winforms

我有一个非常大的C#Winform应用程序(包含数千个异常和错误弹出窗口)。弹出错误时,我有什么方法可以监视此应用程序?这样我就可以消失并在捕获后输出一些信号。

1 个答案:

答案 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");
        }
  

注意

     

因为这是一个静态事件,所以必须分离事件处理程序   处理您的应用程序时,否则将导致内存泄漏。