android捕获全局异常,并对异常做出处理

简介: android捕获全局异常,并对异常做出处理

在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛的异常排查错误,很方便。但是当程序开发完毕,版本稳定,需要上线时,为了避免抛出异常影响用户感受,可以捕获全局异常,对异常做出处理。

具体的实方法如下:

利用Thread.UncaughtExceptionHandler 获取异常,并对异常做出处理:

public class MyUncaughtExceptionHandler implements
        Thread.UncaughtExceptionHandler {
    private Thread.UncaughtExceptionHandler a;
    MyUncaughtExceptionHandler(){
         this.a = Thread.getDefaultUncaughtExceptionHandler();
    }
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
        Log.i("huilurry","ppppppppppppp="+ex.getMessage());
    //是否抛出异常
//        if(a!=null)
//        a.uncaughtException(thread, ex);
    }
}

具体调用:

public class HuiLurryActivty extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String t=android.provider.Settings.System.getString(getContentResolver(), "android_id");
        Log.i("huilurry","android_id="+t);
        huilurry();
        throw new NullPointerException("is null");
    }
    HandlerThread localHandlerThread;
    Handler handler;
    private void huilurry()
    { localHandlerThread=new HandlerThread("huilurry");
        localHandlerThread.start();
        handler=new Handler(localHandlerThread.getLooper());
        Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());     }
}

主要是利用了Hander和HandlerThread。

源代码见:https://wangjun-memory.googlecode.com/svn/trunk/android.huilurry

相关文章
|
8天前
|
XML Java Android开发
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
46 0
|
6天前
|
Android开发
jack-server导致 Android 编译 出现异常
jack-server导致 Android 编译 出现异常
16 6
|
8天前
|
Android开发
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
43 0
|
8天前
|
存储 安全 文件存储
Android OTA升级后输入法异常和应用丢失的分析
Android OTA升级后输入法异常和应用丢失的分析
23 1
|
9月前
|
数据库 Android开发 数据库管理
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常
246 0
|
9月前
|
Android开发
Android > Project with path ‘:audiovisualize‘ could not be found in project ‘:app‘. 异常解决方案
Android > Project with path ‘:audiovisualize‘ could not be found in project ‘:app‘. 异常解决方案
45 0
|
Android开发
执行Socket socket = new Socket(ip, port);时抛出个异常:android.os.NetworkOnMainThreadException解决办法
首先,确认你的android版本是4.0之后再用此方法解决,因为在4.0之后在主线程里面执行Http请求才会报这个错,也许是怕Http请求时间太长造成程序假死的情况吧。Android在4.0之前的版本支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主线程中了。
972 0
|
6天前
|
设计模式 算法 前端开发
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
Android面经分享,失业两个月,五一节前拿到Offer,设计思想与代码质量优化+程序性能优化+开发效率优化
|
4天前
|
编解码 数据库 Android开发
安卓应用开发:打造高效用户界面的五大技巧
【5月更文挑战第18天】在竞争激烈的应用市场中,一个流畅且直观的用户界面(UI)对于安卓应用的成功至关重要。本文将探讨五种提升安卓应用用户界面性能的技巧,包括合理布局设计、优化资源使用、利用硬件加速、内存管理以及响应式编程。通过这些方法,开发者可以创建出既美观又高效的应用体验,从而吸引和保留用户。
|
6天前
|
XML Android开发 数据格式
ConstraintLayout 2,Android高级开发面试
ConstraintLayout 2,Android高级开发面试