博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#程序如何捕捉未try/catch的异常——不弹“XXX已停止工作”报错框
阅读量:5084 次
发布时间:2019-06-13

本文共 752 字,大约阅读时间需要 2 分钟。

诚意满满直接上代码:

static void Main(string[] args){    //Main函数中增加此句    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);}

并在Program类(Main函数所在类)中,增加如下函数即可:

private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)        {            Console.WriteLine(e.ExceptionObject.ToString());            Environment.Exit(-1); //有此句则不弹异常对话框        }

注意:如果在CurrentDomain_UnhandledException中只打印异常而不终止程序的话,该异常仍然会被抛出,最终还是会导致弹出“XXX已停止工作”的对话框,所以如果不想弹框让程序卡住的话就需要用第二句Environment.Exit或其他方式终止程序。当然此处除了向命令行输出异常外还可以保存当前数据或者其他灾难处理措施,但因为程序已经发生异常了,可能有些数据已经损坏,读取可能导致其他问题,要小心哦!

另外winform程序的话,对Application对象也要做一些设置,具体可以参考微软文档中的例子:

转载于:https://www.cnblogs.com/roadbike/p/5808613.html

你可能感兴趣的文章
jQuery.form.js使用
查看>>
(转)linux sort,uniq,cut,wc命令详解
查看>>
关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)
查看>>
UVa540 Team Queue(队列queue)
查看>>
mysql数据增删改查
查看>>
shell中下载最新版本或指定版本的办法(Dockerfile 中通用)
查看>>
极客时间-左耳听风-程序员攻略-分布式架构工程设计
查看>>
akka之种子节点
查看>>
不知道做什么时
查看>>
matlab 给某一列乘上一个系数
查看>>
密码学笔记——培根密码
查看>>
Screening technology proved cost effective deal
查看>>
MAC 上升级python为最新版本
查看>>
创业老板不能犯的十种错误
查看>>
Animations介绍及实例
查看>>
判断请求是否为ajax请求
查看>>
【POJ2699】The Maximum Number of Strong Kings(网络流)
查看>>
spring boot配置跨域
查看>>
BZOJ 1996 合唱队(DP)
查看>>
进击吧!阶乘——大数乘法
查看>>