Android全局捕获异常处理

很多时候我们在程序运行的时候,一旦出现了一个异常,而我们在程序中没有捕捉到,没有处理,就会弹出一个

对话框,导致程序崩掉,这种情况的用户体验极差,接下来就来说如何解决这个问题,程序中任何漏掉的异常处理我们都可以

捕捉到,就是全局异常捕获,代码如下:

 1 package com.qdsj.hxcmjj.util;
 2
 3 import java.lang.Thread.UncaughtExceptionHandler;
 4
 5 import android.app.ProgressDialog;
 6 import android.content.Context;
 7
 8 /**
 9  * 异常处理类
10  * @author jansin
11  *
12  */
13 public class CrashHandler implements UncaughtExceptionHandler {
14     public static final String TAG = "CrashHandler";
15     private static CrashHandler INSTANCE = new CrashHandler();
16     private Context mContext;
17     ProgressDialog loadingDialog;
18
19     private CrashHandler() {
20     }
21
22     public static CrashHandler getInstance() {
23         return INSTANCE;
24     }
25
26     public void init(Context ctx) {
27         mContext = ctx;
28         Thread.setDefaultUncaughtExceptionHandler(this);
29
30         //初始化异常处理类
31     }
32
33     @Override
34     public void uncaughtException(Thread arg0, Throwable arg1) {
35
36         //捕获到异常后在这里做处理
37     }
38
39
40 }
UncaughtExceptionHandler全局异常捕获类 如代码中所示

有了这个自定义类之后,我们还需要在程序运行之前对异常处理类进行初始化,最好是在application类中对全局异常捕获类进行初始化有了这个类之后,就可以解决我们遗漏的异常捕获导致程序奔溃的问题了。
时间: 2024-10-08 19:22:15

Android全局捕获异常处理的相关文章

Spring boot全局捕获异常处理!

package com.htli.util; import java.util.HashMap; import java.util.Map; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.Re

Android 全局异常处理(二)

CrashHandler  package org.wp.activity; import java.io.File; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.PrintWriter; import java.io.StringWriter; import java.io.Writer; import java.lang.Thread.UncaughtExceptionHandl

Android 全局异常处理(一)

from:http://onewayonelife.iteye.com/blog/1147533 from:http://blog.csdn.net/liuhe688/article/details/6584143 大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开发者应该及时获取在该设备上导致崩溃的信息,这对于下一个版本的bug修复帮

【转】 Android自定义捕获Application全局异常

大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去之后,如果出现了崩溃现象,开发者应该及时获取在该设备上导致崩溃的信息,这对于下一个版本的bug修复帮助极大,所以今天就来介绍一下如何在程序崩溃的情况下收集相关的设备参数信息和具体的异常信息,并发送这些信息到服务器供开发者分析和调试程序. 我们先建立一个crash项目,项目结构如图: 在MainActivity.ja

Android全局异常捕捉

// 定义自定义捕捉 package com.xiaosw.test; import java.io.File; import java.io.FileOutputStream; import java.io.FilenameFilter; import java.io.PrintWriter; import java.io.StringWriter; import java.io.Writer; import java.lang.Thread.UncaughtExceptionHandler;

Android怎样捕获应用的crash信息

转载请注明出处:http://blog.csdn.net/fishle123/article/details/50823358 我们的应用不可避免的会发生crash,假设是在调试阶段,我们能够使用Logcat查看异常信息.可是假设应用公布之后呢?假设在用户那边crash了,假设我们能够捕获这些crash信息,那么对我们定位crash原因并修复问题是非常有帮助的. 应用crash就可以能是Java层的异常导致的,也可能是native层导致,以下分别来看一下该怎样处理. 1 Java层的未捕获异常处

自定义Application的未捕获异常处理

最近因为工作原因,进行Android应用开发时发现应用在出现类似空指针等异常时,抛出未被捕获的异常,Android系统有默认的未捕获异常处理器,默认行为是结束相应的线程,但并不会直接退出程序,而且在应用还有后台Service时,服务还一直在运行,如果service在请求网络时还会抛出一些异常信息,而且在未完全退出的应用中再次使用还会进一步导致异常,这样对于用户体验来说实在不好. 因此,需要在应用不管什么情况下出现异常后应该直接退出应用,然后重启应用.网上搜了很多资料,很多都不能很好解决这个问题,

自己定义Application的未捕获异常处理

近期由于工作原因.进行Android应用开发时发现应用在出现类似空指针等异常时,抛出未被捕获的异常.Android系统有默认的未捕获异常处理器,默认行为是结束对应的线程,但并不会直接退出程序,并且在应用还有后台Service时.服务还一直在执行,假设service在请求网络时还会抛出一些异常信息,并且在未全然退出的应用中再次使用还会进一步导致异常,这样对于用户体验来说实在不好. 因此,须要在应用无论什么情况下出现异常后应该直接退出应用,然后重新启动应用.网上搜了非常多资料.非常多都不能非常好解决

springMVC3学习(八)--全局的异常处理

在springMVC的配置文件中: <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="defaultErrorView"> <value>/error</value><!-- 表示当抛出异常但没有