(一) 前言
各位亲爱的午饭童鞋,是不是经常因为自己的程序中出现未层捕获的异常导致程序异常终止而痛苦不已?嗯,是的。。 但是,大家不要怕,今天给大家分享一个东东可以解决大家这种困扰,吼吼!
(二) 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