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

相关文章
|
7月前
|
XML Java Android开发
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
Android Studio App开发之捕获屏幕的变更事件实战(包括竖屏与横屏切换,回到桌面与切换到任务列表)
207 0
|
6月前
|
开发工具 Android开发
android studio build异常
android studio build异常
42 3
|
7月前
|
Android开发
jack-server导致 Android 编译 出现异常
jack-server导致 Android 编译 出现异常
189 6
|
7月前
|
存储 安全 文件存储
Android OTA升级后输入法异常和应用丢失的分析
Android OTA升级后输入法异常和应用丢失的分析
120 1
|
7月前
|
Android开发
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限
289 0
|
数据库 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异常
382 0
|
18天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
23天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
5天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
31 19
|
9天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。