C# WinForm捕获全局异常
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
try
{
//设置应用程序处理异常方式:ThreadException处理
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
//处理UI线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
#region 应用程序的主入口点
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
#endregion
}
catch (Exception ex)
{
string str = GetExceptionMsg(ex,string.Empty);
MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
string str = GetExceptionMsg(e.Exception, e.ToString());
MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
//LogManager.WriteLog(str);
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
string str = GetExceptionMsg(e.ExceptionObject as Exception, e.ToString());
MessageBox.Show(str, "系统错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
//LogManager.WriteLog(str);
}
/// <summary>
/// 生成自定义异常消息
/// </summary>
/// <param name="ex">异常对象</param>
/// <param name="backStr">备用异常消息:当ex为null时有效</param>
/// <returns>异常字符串文本</returns>
static string GetExceptionMsg(Exception ex,string backStr)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("****************************异常文本****************************");
sb.AppendLine("【出现时间】:" + DateTime.Now.ToString());
if (ex != null)
{
sb.AppendLine("【异常类型】:" + ex.GetType().Name);
sb.AppendLine("【异常信息】:" + ex.Message);
sb.AppendLine("【堆栈调用】:" + ex.StackTrace);
sb.AppendLine("【异常方法】:" + ex.TargetSite);
}
else
{
sb.AppendLine("【未处理异常】:" + backStr);
}
sb.AppendLine("***************************************************************");
return sb.ToString();
}
}
C# WinForm捕获全局异常相关推荐
- 【改进】C# WinForm捕获全局异常 SamWang
许多小公司的项目都缺少异常处理模块,我们也是.经常会出现这种情况,用户在UI界面操作,就直接跳出堆栈调用的异常信息对话框,老板看到那叫一个火啊!你们的代码怎么天天出现乱码.呵呵!这就是没有异常捕获处理 ...
- WinForm捕获全局异常(捕获未处理的异常)
背景 我们在做WinForm程序的时候,一般都是对异常进行处理,但是,我们要防止不小心出现未知异常,导致软件崩溃.也可采集系统未知的异常信息,防止出现异常,也无法下手.于是就有了如这篇文章标题所述的一 ...
- C# winform 捕获全局异常
using System; using System.Collections.Generic; using System.Windows.Forms; using System.IO; namespa ...
- 在C#代码中应用Log4Net(四)在Winform和Web中捕获全局异常
毕竟人不是神,谁写的程序都会有bug,有了bug不可怕,可怕的是出错了,你却不知道错误在哪里.所以我们需要将应用程序中抛出的所有异常都记录起来,不然出了错,找问题就能要了你的命.下面我们主要讨论的是如 ...
- PHP 捕获全局异常
PHP 捕获全局异常 参考文章: (1)PHP 捕获全局异常 (2)https://www.cnblogs.com/yaomao/p/11260388.html (3)https://www.java ...
- express捕获全局异常的三种方法
express捕获全局异常的三种方法 参考文章: (1)express捕获全局异常的三种方法 (2)https://www.cnblogs.com/chenqionghe/p/11349521.htm ...
- android捕获全局异常,并对异常做出处理
2019独角兽企业重金招聘Python工程师标准>>> 在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛的异常排查错误,很方便.但是当程序开发完毕,版本稳定,需要 ...
- Springboot捕获全局异常:MethodArgumentNotValidException
Springboot捕获全局异常:MethodArgumentNotValidException 控制器 方法上添加@Valid注解 @PostMapping("/update") ...
- springboot怎么捕获全局异常
学习目标: java中的异常和错误 学习内容: 首页要了解什么是异常什么是错误 捕捉全局异常 自定义异常 一.java中异常和错误的区别 Error类和Exception类的父类都是throwable ...
- winform程序捕获全局异常,对错误信息写入日志并弹窗
使用场景:在winform程序中如果没对方法进行try catch操作,若方法内出错,则整个程序报错并退出,如下图 如果程序已在客户手中,若没对错误的详细信息进行拍照,我们则不知道错误原因是什么.我们 ...
最新文章
- java信息格式化,Java如何格式化包含时间信息的消息?
- oracle sqlcode 多条,SQL查询以连接Oracle中多个行的列值
- 最长公共子序列LCS
- 几种常用控件的使用方法
- 扎实的基础是成功的法宝
- LeetCode 1833. 雪糕的最大数量(贪心)
- java direct memory_第一讲 JVM内存四大类型:Heap,Stack,Contant,DirectMemory等
- POD 创建 Xcode 项目组
- 一个简单mvp安卓应用的设计
- Axure RP 9(附授权码+安装教程)
- Python3.7安装教程
- 如何根据经纬度获取地址名称
- 国科大学习资料–模式识别--精练考点
- 多看系统kindle最新版_谁说电气造价难?这样系统梳理一下简单多了!小白必看...
- xmpp学习使用简单介绍(二)
- 一文搞懂H264量化原理以及计算过程
- 前端案例——2.仿淘宝关闭二维码案例
- OOP上半部分-Java与生活
- CDN加速,App与Big-man
- 阿里云学生机搭建spark、hadoop集群(踩坑之路)
热门文章
- php 便利字符串,Go语言遍历字符串——获取每一个字符串元素
- cmd怎么导入mysql文件,使用cmd工具如何导入大容量sql文件到mysql数据库
- matlab中firrcos,DMR数字集群关键技术的应用研究
- Java对Json文件中数据排序_[Java教程]js之封装sort实现json格式数据的排序
- 违章查询源码 php,PHP教程:php车辆违章查询数据示例
- 大数据平台搭建_【他山之石】自研搭建Hadoop数据科学开发环境,促进大数据平台建设降本增效...
- php mb strimwidth,如何解决WordPress内置函数mb_strimwidth()不能用问题?
- 云鲸扫拖一体机器人说明书_云鲸小白鲸扫拖一体机器人好用吗?真实的测评带你走进智能化家居时代...
- es 怎么验证是否安装成功_ElasticSearch(ES)预警服务 Watcher安装以及探究
- Mac的一些使用技巧