2019独角兽企业重金招聘Python工程师标准>>>

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

具体的实方法如下:

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

转载于:https://my.oschina.net/201003674/blog/288998

android捕获全局异常,并对异常做出处理相关推荐

  1. Android UncaughtExceptionHandler 全局异常监控

    2019独角兽企业重金招聘Python工程师标准>>> 一.全局捕获异常 为了解决这样的问题,我们需要能够及时的捕获异常,但要捕获的地方是在太多,因此,我们需要进行全局性的异常捕获, ...

  2. android bug监控,Android UncaughtExceptionHandler 全局异常监控

    一.全局捕获异常 为了解决这样的问题,我们需要能够及时的捕获异常,但要捕获的地方是在太多,因此,我们需要进行全局性的异常捕获,那么如何捕获全局异常呢? 答案是UncaughtExceptionHand ...

  3. PHP 捕获全局异常

    PHP 捕获全局异常 参考文章: (1)PHP 捕获全局异常 (2)https://www.cnblogs.com/yaomao/p/11260388.html (3)https://www.java ...

  4. WPF捕获全局未处理异常

    WPF捕获全局未处理异常 参考文章: (1)WPF捕获全局未处理异常 (2)https://www.cnblogs.com/xiesong/p/7732023.html (3)https://www. ...

  5. asp.net捕获全局未处理异常的几种方法

    通过HttpModule来捕获未处理的异常[推荐] 首先需要定义一个HttpModule,并监听未处理异常,代码如下: public void Init(HttpApplication context ...

  6. express捕获全局异常的三种方法

    express捕获全局异常的三种方法 参考文章: (1)express捕获全局异常的三种方法 (2)https://www.cnblogs.com/chenqionghe/p/11349521.htm ...

  7. 在C#代码中应用Log4Net(四)在Winform和Web中捕获全局异常

    毕竟人不是神,谁写的程序都会有bug,有了bug不可怕,可怕的是出错了,你却不知道错误在哪里.所以我们需要将应用程序中抛出的所有异常都记录起来,不然出了错,找问题就能要了你的命.下面我们主要讨论的是如 ...

  8. Springboot捕获全局异常:MethodArgumentNotValidException

    Springboot捕获全局异常:MethodArgumentNotValidException 控制器 方法上添加@Valid注解 @PostMapping("/update") ...

  9. Android 捕获主线程异常崩溃

    一般情况下我们想要捕获全局异常会调用Thread.setDefaultUncaughtExceptionHandler方法:这个方法虽然能捕获所有线程的异常,但如果是主线程发生未捕获异常,APP虽然不 ...

最新文章

  1. 10.Redis 性能测试
  2. 平板电脑怎么投屏到电视上_电脑屏幕投屏到平板、IPAD、艾派德
  3. 最佳实践 | 中文文案排版指北
  4. 【HAOI2018】染色【反向二项式反演】【NTT卷积】
  5. Windows编译环境搭建(VS2010)
  6. python loop until_python3-asyncio 学习笔记 3 -- run_until_complete
  7. Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
  8. vs 警告被视为错误
  9. [swift] LeetCode 35. Search Insert Position
  10. 史上最全 SQL 基础知识语法
  11. Vue导出excel表格设置样式的解决方案
  12. gps高斯utm_UTM坐标系统与高斯
  13. 商品库存的扣除过程中如何防止超卖?
  14. 无线网络技术导论笔记(第五讲)
  15. 【笔记】马克思主义哲学(二)-- 唯物论
  16. 前端下载zip出现文件打不开
  17. 日立6TB充氦硬盘详细规格、实物照片
  18. 多窗口自动排列横向纵向排列斜排列多窗口排列工具软件教学
  19. 面试官问:MySQL锁与事物隔离级别你知道吗?
  20. 北京市工作居住证办理流程以及资料

热门文章

  1. oracle 参数脚本,oracle 查看隐含参数脚本
  2. 通俗讲解c语言指针的作用,C语言指针讲解(史上最通俗最全面最经典)
  3. flask向html传函数,Flask----函数数据类型传参
  4. python图像对比_Python多种图像处理库的比较与比较
  5. 关于php反射机制的一些理解
  6. 如何修改was的java路径_在eclipse中修改tomcat的部署路径操作
  7. mysql强制指定索引_mysql强制索引和禁止某个索引
  8. java 短链接url_Java 网址短链接服务原理及解决方案
  9. php 持久化对象,php-对类持久化的引用
  10. php mysql 空值_PHP / MySQL插入空值