未处理的异常

1.控制台应用程序全局捕获未处理的异常

1         static void Main(string[] args)
2         {
3             AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
4         }

2.Winform应用程序全局捕获未处理的异常

 1 public static void Main(string[] args)
 2 {
 3     // Add the event handler for handling UI thread exceptions to the event.
 4     Application.ThreadException += new ThreadExceptionEventHandler(ErrorHandlerForm.Form1_UIThreadException);
 5
 6     // Set the unhandled exception mode to force all Windows Forms errors to go through
 7     // our handler.
 8     Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
 9
10     // Add the event handler for handling non-UI thread exceptions to the event.
11     AppDomain.CurrentDomain.UnhandledException +=
12         new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
13
14     // Runs the application.
15     Application.Run(new ErrorHandlerForm());
16 }

3.WPF应用程序全局捕获未处理的异常

 1     /// <summary>
 2     /// Interaction logic for App.xaml
 3     /// </summary>
 4     public partial class App : Application
 5     {
 6         private void App_OnStartup(object sender, StartupEventArgs e)
 7         {
 8             AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
 9
10             Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
11         }
12
13         void Current_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
14         {
15             throw new NotImplementedException();
16         }
17
18         void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
19         {
20             throw new NotImplementedException();
21         }
22     }

但是AppDomain.CurrentDomain.UnhandledException并非像声明的那样能捕获到所有的异常,详细请参与如下文档。

http://stackoverflow.com/questions/19164556/how-to-catch-observe-an-unhandled-exception-thrown-from-a-task

http://blogs.msdn.com/b/pfxteam/archive/2009/05/31/9674669.aspx

时间: 2024-10-05 21:07:40

未处理的异常的相关文章

(msvcr80d.dll) 处未处理的异常: 0xC0000005: 读取位置 0x00000000时发生访问冲突

一般都是指针访问越界或者不能访问的地址 (msvcr80d.dll) 处未处理的异常: 0xC0000005: 读取位置 0x00000000时发生访问冲突,布布扣,bubuko.com (msvcr80d.dll) 处未处理的异常: 0xC0000005: 读取位置 0x00000000时发生访问冲突

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

建议65:总是处理未捕获的异常 处理为捕获的异常是每个应用程序具备的基本功能,C#在APPDomain提供了UnhandledException事件来接收未捕获到的异常的通知.常见的应用如下: static void Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); } s

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

原文在sparkyuan.me上,转载注明出处:http://sparkyuan.github.io/2016/03/28/使用UncaughtExceptionHandler来处理未捕获的异常/ 所有的App都会发生crash,本文讲解的是如何采集crash信息以供后续开发处理这类问题. 基本思路 当crash发生时,系统会调用UncaughtExceptionHandler的uncaughtException方法,我们可以在这个方法中捕获异常信息,把异常信息存到SD卡中,在合适的时候通过网络

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

一:为什么要处理? 其实我们都知道,在开发过程中,自己的app系统或许有许多隐藏的异常,自己没有捕捉到,那么关于异常的捕捉,这是相当重要的,如果系统发生崩溃,那么至少也可以让系统挂在系统之内,不会发现什么系统直接退了,或者是卡死,这样做,能够使得用户体验效果更加,自己也可以发现用户到底出现什么异常,便于自己以后好处理这个问题,优化处理自己的系统. 二:如何解决 在Android 开发中,自身其实带有一个系统默认的异常处理接口,UncaughtExceptionHandler,该接口呢,能够很好的

错误-终止应用程序由于未捕获的异常的nsinvalidargumentexception’,原因:“[:]:未知的UIView setImage选择器送到实例0x8d78d20”

1 UIImage *image = [UIImage imageNamed:tempAppInfo.icon]; 2 UIImageView *appIcon = (UIImageView *) [appView viewWithTag:0]; 3 appIcon.image = image; 每次执行到第三句时就报错: 更改办法: 把UIImageView的tag改掉不要用0. 原因分析:?. 错误-终止应用程序由于未捕获的异常的nsinvalidargumentexception',原因:

记一次未解决的异常:java.lang.NoClassDefFoundError: net/sf/json/JSONObject

一.异常产生现象 使用json-lib转换实体类/字符串,跑单元测试没问题,但是启动jetty后调用JSONArray.fromObject(data)就会抛标题中异常 二.尝试解决的步骤 1.网上有的说tomcat存在此问题,需要将jar包拷贝到tomcat目录,容器用的是jetty,所以不是这个原因(未解决) http://blog.csdn.net/yeqiuzs/article/details/45097063 2.json-lib需要引入其它库,如图所示,引入后单元测试可以跑通,但是j

C# 截获某个域中未捕获的异常

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

在.NET Windows Form Application中统一处理未处理的异常总结

在Windows Form Application中,异常若最终得不到处理,则会触发AppDomain.CurrentDomain.UnhandledException事件进行以进行最终的异常记录(使用此事件无法避免应用程序的终结).在此事件被触发之前,分以下情况可决定是否将异常继续传播. 主线程 使用Application.SetUnhandledExceptionMode(bool)方法预先设置处理模式: 若为UnhandledExceptionMode.ThrowException,则表示

未处理的异常 stack overflow

今天在编译程序时遇到"0x00e304f7 处有未经处理的异常: 0xC00000FD: Stack overflow"的错误,也就是栈溢出了,google了一下,原来是我申请的一个变量太大了,const int maxnum = 10000;  改小一些就好了. 局部变量的定义是在栈中申请空间的,栈溢出就说明局部变量占用空间太大了,可以采用动态申请内存的方法或者如果不需要这么大就直接改小一点,我这里其实用不到这么大,就改小了一些,编译通过!!