首页 > 代码库 > C# 截获某个域中未捕获的异常
C# 截获某个域中未捕获的异常
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
C# 截获某个域中未捕获的异常
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。