【转】Winform程序未捕获异常解决方法 EventType clr20r3 P1

简介: from:http://blog.csdn.net/chichaodechao/article/details/8294922     在开发winform程序时,用到多线程,在服务器部署后运行,老是自动关才程序,症状描述如下:     在Windows Server 2003的操作系统上,运行.Net 2.0或者3.5的应用程序时,会发现没有任何反应,到系统的事件查看器里会发现类似EventType clr20r3 P1....P2...PN的错误提示。

from:http://blog.csdn.net/chichaodechao/article/details/8294922

    在开发winform程序时,用到多线程,在服务器部署后运行,老是自动关才程序,症状描述如下:

    在Windows Server 2003的操作系统上,运行.Net 2.0或者3.5的应用程序时,会发现没有任何反应,到系统的事件查看器里会发现类似EventType clr20r3 P1....P2...PN的错误提示。

    很可能的原因就是:应用程序出现了异常,而.net没有或者无法捕捉该异常,所以导致出现如下情况:

    1.程序自动关闭。

    2.此时去任务管理器中会看到一个DW20.exe的进程,不久会自动消失

    3.到事件查看器里面会发现类似EventType clr20r3 P1....P2...PN的错误提示。 

    解决方法一:

    config文件中

  <configuration>    

    <runtime>        

      <legacyUnhandledExceptionPolicy enabled="true" />    

    </runtime>

  </configuration>

  这样,主程序遇到未捕获异常不会强制关闭,但为了程序的稳定性与安全性,应该找出抛异常的地方,将其修改

    解决方法二:

    用到UnhandledExceptionEventHandler事件,通过这个事件,我们可以截获未捕获异常,并进行处理

    这个事件的事件参数UnhandledExceptionEventArgs e 有两个属性,一个是ExceptionObject,这个属性返回为截获异常的对象实例。还有一个属性是IsTerminating,这个属性告诉我们这个异常是否会导致应用终止。

    这里需要说明的是,对于.Net1.1  .Net2.0及以上,情况是不一样的,.Net1.1 只有在主线程中的未捕获异常才会终止应用程序,而.Net2.0及以上版本则是始终终止应用程序。

      在主窗体main下,加         

  AppDomain.CurrentDomain.UnhandledException +=new UnhandledExceptionEventHandler(UnhandledExceptionEventHandler);

  并编码UnhandledExceptionEventHandler事件,

        static void UnhandledExceptionEventHandler(object sender, UnhandledExceptionEventArgs e)

        {

            try

            {

                LogHelper.ErrorLog(e.ExceptionObject.ToString());//LogHelper是写日志的类,这里,可以直接写到文件里

            }

            catch

            {

            }

        }

    运行程序,异常捕获,找到了问题所在,对代码进行改写

本文结束。

 

参考:

http://www.cnblogs.com/eaglet/archive/2009/02/17/1392191.html(重要)

 

 

http://hi.baidu.com/ymwang/blog/item/07b1b20eab9cdde537d12265.html(重要)

 

http://www.cnblogs.com/xclw/archive/2009/09/29/1576436.html

 

http://www.cnblogs.com/dudu/archive/2006/05/07/393446.html

 

http://hi.baidu.com/xiejl/blog/item/98743c1f161cafc1a686697e.html

 

http://topic.csdn.net/t/20050304/22/3825910.html 

 

http://www.yesky.com/258/1653758.shtml 

http://www.cnblogs.com/cgzwwy/archive/2008/08/31/1280597.html

 

 

 

 

走向地狱的途中,不小心走了程序员这条路,路上一个个黑心的老板,和暗无天日的加班,我才发现,通往地狱的路径中,我们这行是最短的。

 
 
 
 
 
目录
相关文章
|
机器学习/深度学习 算法 PyTorch
Pytorch自动求导机制详解
在深度学习中,我们通常需要训练一个模型来最小化损失函数。这个过程可以通过梯度下降等优化算法来实现。梯度是函数在某一点上的变化率,可以告诉我们如何调整模型的参数以使损失函数最小化。自动求导是一种计算梯度的技术,它允许我们在定义模型时不需要手动推导梯度计算公式。PyTorch 提供了自动求导的功能,使得梯度的计算变得非常简单和高效。
602 0
|
前端开发 Serverless UED
iconfont渐变色实现方案总结
iconfont渐变色实现方案总结
1071 0
|
6月前
|
C++
提示缺少.NET Framework 3.5 安装错误:0x80070002、0x800F0950\0x80004002
.NET Framework常见问题及解决方法汇总,
728 0
|
8月前
|
NoSQL 安全 Redis
Docker Compose :从入门到企业级部署
Docker Compose 是用于定义和运行多容器应用的工具,支持服务、网络和卷三大核心要素。通过简洁的 YAML 文件,可实现应用的快速部署与管理,适用于开发、测试及生产环境。
628 1
|
7月前
|
机器学习/深度学习 人工智能 安全
什么是医院不良事件管理系统?PDCA分析法在系统中具体如何应用?
医院不良事件管理系统是用于识别、分析和预防医疗过程中各类安全事件的工具,旨在提升患者安全、保障医疗质量。系统覆盖患者安全、用药、设备、护理等多个场景,结合PDCA循环推动持续改进,并通过自动化与智能分析提升效率。
465 0
|
传感器 供应链 安全
大数据技术的应用场景
大数据技术的应用场景
|
机器学习/深度学习 算法 搜索推荐
KNN算法(k近邻算法)原理及总结
KNN算法(k近邻算法)原理及总结
1501 0
JVM进阶调优系列(5)CMS回收器通俗演义一文讲透FullGC
本文介绍了JVM中CMS垃圾回收器对Full GC的优化,包括Stop the world的影响、Full GC触发条件、GC过程的四个阶段(初始标记、并发标记、重新标记、并发清理)及并发清理期间的Concurrent mode failure处理,并简述了GC roots的概念及其在GC中的作用。
|
安全 Java API
springboot 单点登录实现原理
【7月更文挑战第2天】单点登录(Single Sign-On,SSO)是一种用户认证方式,用户在多个应用系统中只需要登录一次,就可以访问所有相互信任的应用系统。
685 1