WinForm 处理未处理的异常 Application.ThreadException + AppDomain.CurrentDomain.UnhandledException
来源:互联网 发布:淘宝美工接单平台 编辑:程序博客网 时间:2024/04/27 18:29
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.ThreadException += Application_ThreadException; Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } /// <summary> /// 处理应用程序域内的未处理异常(非UI线程异常) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { try { Exception ex = e.ExceptionObject as Exception; MessageBox.Show(ex.Exception.Message); } catch { } } /// <summary> /// 处理应用程序的未处理异常(UI线程异常) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void Application_ThreadException(object sender, ThreadExceptionEventArgs e) { try { MessageBox.Show(e.Exception.Message); } catch { } } }
这里有一个需要注意的地方,如下代码 Application.Run(new MainForm()); 这里只能执行一次 Application.Run代码,如果你像下面这样写代码的话:
Application.Run(new SplashScreenForm());Application.Run(new MainForm());
那么如果在MainForm出现未处理的异常(UI异常或是非UI异常),上面的异常处理程序就无法捕获了。
0 0
- WinForm 处理未处理的异常 Application.ThreadException + AppDomain.CurrentDomain.UnhandledException
- Application.ThreadException 以及 AppDomain.UnhandledException真强!
- 关于Thread(lambda,全局捕获异常AppDomain.CurrentDomain.UnhandledException)
- 异常处理之ThreadException、unhandledException及多线程异常处理
- 异常处理之ThreadException、unhandledException及多线程异常处理
- 异常处理之ThreadException、unhandledException及多线程异常处理
- C# WinForm中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- C# APPDOMAIN.CURRENTDOMAIN.BASEDIRECTORY与APPLICATION.STARTUPPATH的区别
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的用法
- C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
- break和continue区别
- tensorflow 1.01 利用rnn计算mnsit分类遇到的巨坑
- 算法提高 8皇后·改
- modbus-tcp协议学习-java
- Modern Recommender System
- WinForm 处理未处理的异常 Application.ThreadException + AppDomain.CurrentDomain.UnhandledException
- 会编程的 AI + 会修 Bug 的 AI,等于什么 ?
- 最长递增子序列 nlogn
- 面向对象的选项卡
- 单点登录原理与简单实现
- L1-007. 念数字
- 机器学习实战---读书笔记: 第4章 基于概率论的分类而方法:朴素贝叶斯
- mysql中datetime 和timestamp的区别
- 【C】比较数组中有或没有相同的数,有就输出"有",没有则输出"没有"