• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#截获某个域中未捕获的异常CLR20R3程序终止的几种解决方案

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

AppDomain.UnhandledException可以获的异常,却截不下来,求解

 

AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

 

在.Net1.0/1.1下,非主线程的未处理异常将被忽略。这本身不是好事,所以2.0后该行为更改了。
像你的情况可以要求程序兼容1.1行为。
1、添加一个配置文件(App.Config)
2、加入runtime节并指定legacyUnhandledExceptionPolicy:

 

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <legacyUnhandledExceptionPolicy enabled="1"/>
  </runtime>
</configuration>

 

主线程异常就好处理了。

注:如果“域里试着执行代码”不用创建线程,则更干净的做法是设定域权限,使他不能创建线程。同样主线程异常很好处理。

 

 

你采取的是无视异常的方式,不过这种方式有两个小缺点:运行没问题,但是却很难去调试,因为调试时能检测到异常;在console下,异常依然会显示在黑屏上。不过这都是小问题,不怎么影响运行就行了:)

“域里试着执行代码”,代码好多是别人的,很难保证里面不会创建线程,如果加限制可能使代码无法正常运行。

微软的机制还不算太全,勉强用吧

 

http://bbs.csdn.net/topics/350074469


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c#同步锁Monitor.Enter(T)发布时间:2022-07-14
下一篇:
c++读取一行的2个数发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap