Bootstrap

winform设置全局异常处理机制来获未处理的异常

见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看......

winform设置全局异常处理机制来获未处理的异常,通过订阅 Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 事件来实现。

internal static class Program
{
    /// <summary>
    ///  应用程序入口
    /// </summary>
    [STAThread]
    static void Main()
    {
        ApplicationConfiguration.Initialize();

        // 订阅 ThreadException 事件,用于捕获 UI 线程上的未捕获异常
        Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);

        // 设置未经处理的异常模式,以便在非 UI 线程上也能捕获异常
        Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

        // 订阅 UnhandledException 事件,用于捕获所有线程上的未捕获异常
        AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

        Application.Run(new Form1());
    }

    // 处理 UI 线程上的未捕获异常
    private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
    {
        HandleException(e.Exception);
    }

    // 处理所有线程上的未捕获异常
    private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        HandleException(e.ExceptionObject as Exception);
    }

    // 统一的异常处理方法
    private static void HandleException(Exception ex)
    {
        if (ex == null) return;
        // 记录错误日志
        Application.Exit();// (可选)退出应用程序或采取其他措施
    }
}

关注我,不失联。有啥问题请留言。

感情恋爱合集

职业发展故事

常用代码片段

程序开发教程

自我备考经验 

;