(一) 前言
程序中出现未层捕获的异常导致程序异常如何处理
(二) UncaughtExceptionHandler接口
这个接口,顾名思义,就是处理程序中没有处理的异常,而且是在系统抛出异常导致程序异常终止之前哦!那么,在Android里面怎么使用呢?
(三) 怎么使用UncaughtExceptionHandler
1. 首先,咱们得创建一个UncaughtExceptionHandler的具体类,比如: 2. 其次,我们自定义Application类 3. 配置AndroidManifest.xml文件
由于我们使用自定义的Application,所以我们要在AndroidManifest.xml文件中申明它 4. 测试
我们在Activity里面启动一个线程,然后线程里面抛出一个异常,看看程序会怎么样 5. 结果
由于我们有默认未处理异常的处理程序,所以会打印下面的日志信息,而不会抛出异常导致程序异常终止
D/Sandy ( 2228): I am a sub thread
D/Sandy ( 2228): uncaughtException, thread: Thread[sub thread,5,main] name: sub thread id: 148exception: java.lang.NullPointerException
大家还等什么呢?赶紧在自己的应用里面添加上默认未处理异常处理器吧!再也不会因为异常未捕获发生程序崩溃了。。^_^
程序中出现未层捕获的异常导致程序异常如何处理
(二) UncaughtExceptionHandler接口
这个接口,顾名思义,就是处理程序中没有处理的异常,而且是在系统抛出异常导致程序异常终止之前哦!那么,在Android里面怎么使用呢?
(三) 怎么使用UncaughtExceptionHandler
1. 首先,咱们得创建一个UncaughtExceptionHandler的具体类,比如: 2. 其次,我们自定义Application类 3. 配置AndroidManifest.xml文件
由于我们使用自定义的Application,所以我们要在AndroidManifest.xml文件中申明它 4. 测试
我们在Activity里面启动一个线程,然后线程里面抛出一个异常,看看程序会怎么样 5. 结果
由于我们有默认未处理异常的处理程序,所以会打印下面的日志信息,而不会抛出异常导致程序异常终止
D/Sandy ( 2228): I am a sub thread
D/Sandy ( 2228): uncaughtException, thread: Thread[sub thread,5,main] name: sub thread id: 148exception: java.lang.NullPointerException
大家还等什么呢?赶紧在自己的应用里面添加上默认未处理异常处理器吧!再也不会因为异常未捕获发生程序崩溃了。。^_^