文档章节

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

AK_47
 AK_47
发布于 2014/07/09 17:42
字数 233
阅读 60
收藏 0

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

具体的实方法如下:

利用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。

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

© 著作权归作者所有

AK_47
粉丝 16
博文 533
码字总数 569998
作品 0
嘉定
程序员
私信 提问
Android App中多进程问题:捕获异常信息并重启应用

App crash原因以及解决办法- https://blog.csdn.net/yangtuxiaojie/article/details/47123243 Android在程序崩溃或者捕获异常之后重新启动app- https://www.cnblogs.com/dingxiansen/p/8628......

desaco
2018/11/21
0
0
安卓实现分业务模块异常捕获,全局异常不崩溃,应用继续运行!

需求:按当前项目工程的组织结构,业务模块被分为多个独立的Module,要求当业务模块内发生未捕获到的局部异常时,不重启整个应用,只是单独重启某个异常的业务模块 目前安卓中常用的异常捕获...

猴亮屏
2018/05/18
35
0
(转)Android平台的崩溃捕获机制及实现

作者简介:贾志凯,Testin崩溃分析(http://apm.testin.cn/)项目研发工程师,负责客户端SDK相关技术研发工作。5年移动互联网开发经验,曾任职于中科院、Symantec、Opera,对移动App的测试、分...

so1per
2016/01/18
4K
0
Android 的默认异常处理机制是怎么样的呢?

在出现一个异常之后,有的项目会重启,有的项目会仍然停留在出错的界面上,那么如果自己不做全局异常捕获的情况下,系统是如何处理的呢? 在写的测试demo中发现,系统会弹出出现异常的activity/Fr...

鲸歌
2015/09/29
398
3
Android:处理程序崩溃异常

大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试,所以在程序发布出去...

Koon.LY
2012/06/25
514
0

没有更多内容

加载失败,请刷新页面

加载更多

Rust 的 GUI 框架生态概览

本文比较全面比较了目前主流的 Rust 的 GUI 框架的表现。其中 ++ 表示非常好,-- 表示非常差,而 o 表示处于平均水平。 参与对比的框架共有 8 个,详细的比较结果如下: Electron + Neon El...

红薯
33分钟前
4
0
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
4
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
3
0
Spring Boot + Mybatis-Plus 集成与使用(二)

前言: 本章节介绍MyBatis-Puls的CRUD使用。在开始之前,先简单讲解下上章节关于Spring Boot是如何自动配置MyBatis-Plus。 一、自动配置 当Spring Boot应用从主方法main()启动后,首先加载S...

伴学编程
昨天
7
0
用最通俗的方法讲spring [一] ──── AOP

@[TOC](用最通俗的方法讲spring [一] ──── AOP) 写这个系列的目的(可以跳过不看) 自己写这个系列的目的,是因为自己是个比较笨的人,我曾一度怀疑自己的智商不适合干编程这个行业.因为在我...

小贼贼子
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部