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=""/>
</runtime>
</configuration>

主线程异常就好处理了。

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

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

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

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

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

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

  1. Android中使用UncaughtExceptionHandler来处理未捕获的异常

    原文在sparkyuan.me上.转载注明出处:http://sparkyuan.github.io/2016/03/28/使用UncaughtExceptionHandler来处理未捕获的异常/ 全 ...

  2. 编写高质量代码改善C#程序的157个建议——建议65:总是处理未捕获的异常

    建议65:总是处理未捕获的异常 处理为捕获的异常是每个应用程序具备的基本功能,C#在APPDomain提供了UnhandledException事件来接收未捕获到的异常的通知.常见的应用如下: sta ...

  3. c#处理未捕获的异常(UnhandledException)

    处理未捕获的异常,放在program类的Main函数下 1.UnhandledException 作用:接收未捕获到的异常 例: static void Main(string[] args) { A ...

  4. Java Thread 如何处理未捕获的异常?

    Java Thread是不允许异常抛出到本线程之外的,Runnable接口的public abstract void run()是不允许throws Exception的,这在编译时就通不过. 线程异 ...

  5. Android 捕捉app系统中未处理的异常

    一:为什么要处理? 其实我们都知道,在开发过程中,自己的app系统或许有许多隐藏的异常,自己没有捕捉到,那么关于异常的捕捉,这是相当重要的,如果系统发生崩溃,那么至少也可以让系统挂在系统之内,不会发现 ...

  6. android 捕获所有异常 未捕获的异常

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 定义一个类 继承 应用, 实现 未捕获异常处理器 uncaughtExceptionHa ...

  7. Android处理未捕获的异常(应用全局异常)

    public class CrashHandler implements UncaughtExceptionHandler { private static CrashHandler instance ...

  8. eclipse中启动服务时提示端口被占的2种解决方案

    出现类似这样的:port '19001' at localhost are already in use 第一种:在任务管理器中关闭相关eclipse进程,然后重启eclipse.这种方法可能有时候会 ...

  9. 在C#代码中应用Log4Net(四)在Winform和Web中捕获全局异常

    毕竟人不是神,谁写的程序都会有bug,有了bug不可怕,可怕的是出错了,你却不知道错误在哪里.所以我们需要将应用程序中抛出的所有异常都记录起来,不然出了错,找问题就能要了你的命.下面我们主要讨论的是如 ...

随机推荐

  1. 完整阿里云Redis开发规范

    完整阿里云Redis开发规范 原文地址 本文主要介绍在使用阿里云Redis的开发规范,从下面几个方面进行说明. 键值设计 命令使用 客户端使用 相关工具 删除bigkey 通过本文的介绍可以减少使用R ...

  2. java面试07——设计模式

    1.什么是设计模式 设计模式就是经过前人无数次的实践总结出的,设计过程可以反复使用的,可以解决特定问题的设计方法. 2.常用的设计模式有哪些 2.1单例模式(饱汉模式.饿汉模式.双重锁模式) http ...

  3. centos7.2 my.cnf 更改问题

    MySQL与Python交互,踩坑无数,碰到最棘手的问题就是更改:my.cnf文件,记录下来! 安装虚拟机,碰到下载的镜像文件有缺失,一开始没注意,浪费了很多时间.重新下载,安装成功. 安装MySQL ...

  4. usermod 修改用户信息

    7.2 usermod 修改用户信息 1.命令功能 usermod 修改已存在的用户账号信息. 2.语法格式 usermod option login 参数选项说明 选项 选项说明 -c 修改用户pa ...

  5. zencart 输出产品特价折扣百分比

    通过调用zen_get_products_base_price($products_id)获取原价,zen_get_products_special_price($products_id)获取特价,进 ...

  6. Java并发编程实战 第4章 对象的组合

    Java监视器模式 java监视器模式就是在将共享的数据封装在一个类里面,然后然后所有访问或者修改这些数据的方法都标注为synchronize. 车辆追踪模拟: 使用监视器模式: CarTracker ...

  7. Java并发编程实战 第3章 对象的共享

    可见性 可见性是由于java对于多线程处理的内存模型导致的.这似乎是一种失败的设计,但是JVM却能充分的利用多核处理器的强大性能,例如在缺乏同步的情况下,Java内存模型允许编译器对操作顺序进行重排序 ...

  8. 利用urllib.urlopen向有道翻译发送数据获得翻译结果

    from urllib import request,parseimport requests, sys,ssl,json ssl._create_default_https_context = ss ...

  9. 【洛谷P1919】A*B Problem升级版

    题目大意:rt 题解:将长度为 N 的大整数看作是一个 N-1 次的多项式,利用 FFT 计算多项式的卷积即可. 代码如下 #include <bits/stdc++.h> using n ...

  10. web性能优化--减少DOM操作(三)

    减少DOM数量 减少DOM操作 批量处理DOM操作 批量处理样式修改 尽量不要使用tabel布局 尽量不要使用css表达式 string用数组join css选择符优化 1.减少DOM数量 在HTML ...