C#学习记录(2023.8.30)

C#学习记录(2023.8.30)

捕获全局异常

处理UI线程(即主线程):

  1. Application.ThreadException事件

    处理非UI线程的:

    AppDomain.CurrentDomain.UnhandleException事件

    using System;
    using System.Threading;
    using System.Windows.Forms;
    
    namespace GlobalExceptionHandling
    {
        static class Program
        {
            [STAThread]
            static void Main()
            {
                // 注册全局异常处理事件
                Application.ThreadException += ThreadExceptionHandler;
                AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler;
                
                // 单实例应用程序的互斥处理
                if (!mutex.WaitOne(TimeSpan.Zero, true))
                {
                    MessageBox.Show("应用程序已在运行中!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
    
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new MainForm());
            }
    
            // UI 线程异常处理方法
            static void ThreadExceptionHandler(object sender, ThreadExceptionEventArgs e)
            {
                Exception ex = e.Exception;
                MessageBox.Show("捕获到异常:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                // 其他异常处理逻辑
            }
    
            // 非 UI 线程异常处理方法
            static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
            {
                Exception ex = e.ExceptionObject as Exception;
                MessageBox.Show("全局异常处理:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                // 其他异常处理逻辑
            }
        }
    }a
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值