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();// (可选)退出应用程序或采取其他措施
    }
}

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

感情恋爱合集

职业发展故事

常用代码片段

程序开发教程

自我备考经验 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我曾经是个程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值