logo

  • 首页
  • 博客简介
  • 说说页面
  • 关于
  • 文章存档
    • C#教程
    • C#实战
  • 隐私政策
  • 首页
  • 博客简介
  • 说说页面
  • 关于
  • 文章存档
  • 隐私政策
您正在使用IE浏览器,部分内容可能无法显示,建议您换用更新的浏览器,请单击下载Chrome浏览器
显示屏过小,本网站无法正常显示
你处于离线状态,正在显示缓存网页
首页/ 分类:C#教程/ 【编程技巧】全局异常捕获

【编程技巧】全局异常捕获

2020年2月23日 21:50:54 吕舒君 0 百度已收录 948 次浏览

知识普及-What is 异常?

异常指的是在程序运行过程中发生的异常事件,通常是由外部问题(如硬件错误、输入错误)所导致的。在Java等面向对象的编程语言中异常属于对象。 在C#中异常有专门的类——System.Exception,其它的异常(如IOException、FileLoadException)都从其派生。

SO……如何处理

这时我们就要请出——

try
 {
 }
 catch
 {
 }
 finally
 {
 }

可是异常处处可以发生((⊙﹏⊙)),总不能处处写try…catch吧。请继续往下看。

方法一——暴力

直接把Main函数整个扩上try…catch

try
 {
     Application.SetCompatibleTextRenderingDefault(false);
     Application.Run(new Load());
 }
 catch
 {
     //输出信息
 }
 

方法二——理智

发现Application类中有此事件ThreadException

😛 这不正是我们想要的吗?

Application.ThreadException += Application_ThreadException;
 //写在Main方法开头
 

Application_ThreadException方法如下

static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
 {
     BugReports b = new BugReports(e.Exception);
     b.ShowDialog();
 }
 

方法三——完全

再加上多线程捕获

Application.ThreadException += Application_ThreadException;
 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
 //写在Main方法开头
 
//UI线程异常
 static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
 {
     BugReports b = new BugReports(e.Exception);
     b.ShowDialog();
 }
 //多线程异常
 static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
 {
     BugReports b = new BugReports((Exception)e.ExceptionObject);
     b.ShowDialog();
 }
 

妈妈再也不用担心出现异常了!

作者头像
吕舒君
就是本站站长(^_−)☆
提示
你已经点赞过了
上一篇文章缩略图
【C#教程】输入与输出
« 上一篇文章
下一篇文章缩略图
【奇闻异事】百度彩蛋
下一篇文章 »
原创声明
版权声明: 本文由作者吕舒君于2020年2月23日 21:50:54原创发表.
转载请务必取得作者同意, 并附带本页面地址: https://cszj.wang/660.html
查看作者 吕舒君 的所有文章
发表评论
account_circle
email
email
评论区
共0条回复
暂无评论,说说你的看法吧!
侧边栏
文章目录
  • 知识普及-What is 异常?
  • SO……如何处理
  • 方法一——暴力
  • 方法二——理智
  • 方法三——完全
最近文章
文章缩略图
【Windows】Windows11初体验
升级&安装 不久前,微软刚刚发布了“十年来最重要的操
文章缩略图
【Windows】如何关闭Windows的自动更新
引子 Windows的自动更新的问题已经困扰了一些用户很久了
文章缩略图
【前端教程】如何创建一个属于自己的在线思维导图网站
什么是思维导图 思维导图,英文是The Mind Map,又
文章缩略图
【信奥】Java vs C++
题面 题目描述 Java和C++两种语言的辩手都可以相互争论
文章缩略图
【信奥】收集树叶
题面 描述 给出一棵二叉树,收集并移除所有叶子,重复执行,直
最近文章
您尚未登录
底部推荐
随机文章
文章缩略图
【Windows】Windows11初体验
升级&安装 不久前,微软刚刚发布了“十年来最重要的操
站点统计
文章总数:35篇
评论总数:127条
分类总数:9个
标签总数:81个
网站运行:2038天
最后更新:2022-4-4
友情链接
搜索站 文件管理 洛谷 WordPress大学

吕舒君的博客,一个传递知识的网站!

前往本站
吕舒君的博客
一个传递知识的网站

版权所有·吕舒君(2016-2022)

酷博客(V4.1.0). Theme By 吕舒君. 网站已使用SSL加密 本页面进行了 70 次请求在 0.281 秒内加载完成, 使用了 13.50MB 的内存。