winform程序未捕获异常解决方法
来源:互联网 发布:闻牛创富软件怎么样 编辑:程序博客网 时间:2024/06/05 11:13
来自:http://www.cnblogs.com/kevinlzf/archive/2009/11/25/1610929.html
在开发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 +=newUnhandledExceptionEventHandler(UnhandledExceptionEventHandler);
并编码UnhandledExceptionEventHandler事件,
static void UnhandledExceptionEventHandler(object sender,UnhandledExceptionEventArgs e)
{
try
{
LogHelper.ErrorLog(e.ExceptionObject.ToString());//LogHelper是写日志的类,这里,可以直接写到文件里
}
catch
{
}
}
运行程序,异常捕获,找到了问题所在,对代码进行改写。
本文结束。
参考:
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/eaglet/archive/2009/02/17/1392191.html(重要)
http://www.cnblogs.com/cgzwwy/archive/2008/08/31/1280597.html
- winform程序未捕获异常解决方法
- winform程序未捕获异常解决方法 EventType clr20r3 P1
- Winform程序未捕获异常解决方法 EventType clr20r3 P1
- winForm:面对未捕获的异常时
- 捕获程序中未捕获的异常
- winform 程序异常捕获全局处理
- Winform捕获全局异常
- 未捕获的异常
- WinForm程序中未处理异常的解决方法
- WinForm程序中未处理异常的解决方法
- C#.NET--如何处理程序的未捕获异常
- C#处理WindowForm程序中未捕获的异常
- 体面地处理程序的未捕获异常
- Winform 统一捕获异常,捕获未处理异常
- WINFORM未处理异常之捕获
- C# winform 捕获全局异常
- C# winform 捕获全局异常
- C# WinForm捕获全局异常
- Linux 信号处理机制
- Spring环境搭建与输出“Hello world”
- 实现C语言高效编程的四大秘技
- bullet物理引擎创建流程
- Ubuntu terminator 多窗口终端的快捷键
- winform程序未捕获异常解决方法
- 使用Java I/O流快速搜索手机文件引擎
- 使用devstack部署Openstack开发环境
- Activiti webService task演示实例
- 组合数学-反射原理
- 【ci框架】CI中site_url()和base_url()的区别
- matlab中feval与eval的区别
- IOS 深拷贝和浅拷贝问题 (deep copy and shadow copy)
- C++ vector 排序