C#程序如何捕捉未try/catch的异常——不弹“XXX已停止工作”报错框

诚意满满直接上代码:

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://msdn.microsoft.com/zh-cn/library/ms157905(v=vs.110).aspx

时间: 2024-10-07 06:30:26

C#程序如何捕捉未try/catch的异常——不弹“XXX已停止工作”报错框的相关文章

VS2008运行MFC程序,提示microsoft incremental linker已停止工作解决方法

其实这边是因为设置有问题,具体的解决方案如下: 第一步:点击项目->"你的文件"属性->配置属性->链接器->启用增量链接   将  是(/INCREMENTAL)改为 否(/INCREMENTAL:NO) 第二步:点击项目->"你的文件"属性->配置属性->C/C++  将调试信息格式改为程序数据库(/Zi) 改完之后,重新调试一下程序,是不是问题已经解决了? 以下附上截图: VS2008运行MFC程序,提示microso

ASP.NET程序运行出现WebDev.WebServer40.exe已停止工作解决方法

问题描述:在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误,程序调试运行,发现程序在打开数据库时候报错,也就是Connection.Open()处. 但是发现程序连接本地数据库正常,连接内网服务器数据库会报错,但是Sqlserver是可以直接连接到内网服务器数据库,所以排除了程序问题和数据库远程设置问题. 解决方法:用管理员身份运行cmd,输入netsh winsock reset回车,重新启动电脑ok!,一定是管理员身份哦.

Visual Studio 2015 未响应/已停止工作的问题解决

在我把之前项目从10版本升级到15版本的时候,一打开转换的项目过几分钟立马卡死,出现未响应/已停止工作的问题,我试过了很多方法: 1.升级操作系统,8.1升级10,没用! 2.重装VS,没用! 3.卸载插件,纯净启动,没用! 4.重置用户数据启动VS,没用! 5.安全模式启动VS,没用! 6.删除项目中的suo文件..vs文件夹,没用! 最后,我发现了技巧,我重新迁出一份最新版本的代码到本地,然后打开转换,一点问题的没有,成功问题解决! 可能是原来那份代码有很多编译的obj和bin文件等,导致读

在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误的解决办法

问题描述:在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误,程序调试运行,发现程序在打开数据库时候报错,也就是Connection.Open()处. 但是发现程序连接本地数据库正常,连接内网服务器数据库会报错,但是Sqlserver是可以直接连接到内网服务器数据库,所以排除了程序问题和数据库远程设置问题. 解决方法:经过查找和试验,最后发现是的Winsock协议配置有问题,导致网络连接出现异常,有资料说是因为360安全卫士拦截网络访问通道导致的. 解

“程序已停止工作”问题的解决方法

问题 遇到一个程序打不开的错误,如图: 问题详细信息如下: 问题签名: 问题事件名称: CLR20r3 问题签名 01: rdh-idss.exe 问题签名 02: 1.0.1.0 问题签名 03: 5510d590 问题签名 04: RDH-IDSS 问题签名 05: 1.0.1.0 问题签名 06: 5510d590 问题签名 07: 92 问题签名 08: 10 问题签名 09: System.BadImageFormatException 解决 1)百度里查找了很多类似的错误,发现弹框总

开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误

已经解决,问题描述:在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误,程序调试运行,发现程序在打开数据库时候报错,也就是Connection.Open()处. 但是发现程序连接本地数据库正常,连接内网服务器数据库会报错,但是Sqlserver是可以直接连接到内网服务器数据库,所以排除了程序问题和数据库远程设置问题. 解决方法:经过几个星期断断续续的查找和试验,最后发现是的Winsock协议配置有问题,导致网络连接出现异常,有资料说是因为360安全卫士

“程序已停止工作”问题的解决方法,停止解决方法

"程序已停止工作"问题的解决方法,停止解决方法 问题 遇到一个程序打不开的错误,如图: 问题详细信息如下: 问题签名:问题事件名称: CLR20r3问题签名 01: rdh-idss.exe问题签名 02: 1.0.1.0问题签名 03: 5510d590问题签名 04: RDH-IDSS问题签名 05: 1.0.1.0问题签名 06: 5510d590问题签名 07: 92问题签名 08: 10问题签名 09: System.BadImageFormatException 解决 1)

win7老是弹出“Windows Media PIayer网络共享服务配置应用程序 已停止工作”

应是优化软件的时候把服务禁止启动了. 我的电脑 > 管理 > 服务和应用程序 > 服务 Windows Media Player Network Sharing Service 启动 启动时如提示:本地计算机上的windows media player network sharing service服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止 则有可能是:SSDP Discovery  和  UPnP Device Host服务被禁止,先启动这两个服务

VS2008执行MFC程序,提示microsoft incremental linker已停止工作解决方法

事实上这边是由于设置有问题.详细的解决方式例如以下: 第一步:点击项目->"你的文件"属性->配置属性->链接器->启用增量链接   将  是(/INCREMENTAL)改为 否(/INCREMENTAL:NO) 第二步:点击项目->"你的文件"属性->配置属性->C/C++  将调试信息格式改为程序数据库(/Zi) 改完之后.又一次调试一下程序,是不是问题已经攻克了? 下面附上截图: