利用Android的UncaughtExceptionHandler捕获崩溃异常
2015-09-14 17:51
375 查看
利用Android的UncaughtExceptionHandler捕获崩溃异常
我们在开发Android应用时,由于一些这样那样的原因,偶尔会导致程序崩溃,而有的崩溃可以轻松的捕获到异常,有的崩溃就不轻易捕获到异常了。再一个原因是我们希望能够在应用崩溃的时候,能够收集到当时的一些信息,比如手机信号,版本等等,也就是日志信息,以及在崩溃的时候给用户一个良好的体验,不要直接一下就退出整个应用了。
通过调研发现,Android Thread的UncaughtExceptionHandler能够收集到这些异常。UncaughtExceptionHandler位于Thread类里面,Thread类提供了三个方法对UncaughtExceptionHandler进行处理。分别是setUncaughtExceptionHandler,setDefaultUncaughtExceptionHandler,getDefaultUncaughtExceptionHandler,从方法命名都可以看出啥意思吧。
有人也许会说,这些方法是Thread里面的,捕获的也是Thread里面的异常啊,android应用那么多线程,怎么能够捕获到呢?
肯定能够捕获到的,因为Android应用程序里面有一个主线程。我们可以在主线程里面setDefaultUncaughtExceptionHandler,然后在uncaughtException里面处理异常信息,你可以收集崩溃日志,跳转一个崩溃页面等等。
我们在开发Android应用时,由于一些这样那样的原因,偶尔会导致程序崩溃,而有的崩溃可以轻松的捕获到异常,有的崩溃就不轻易捕获到异常了。再一个原因是我们希望能够在应用崩溃的时候,能够收集到当时的一些信息,比如手机信号,版本等等,也就是日志信息,以及在崩溃的时候给用户一个良好的体验,不要直接一下就退出整个应用了。
通过调研发现,Android Thread的UncaughtExceptionHandler能够收集到这些异常。UncaughtExceptionHandler位于Thread类里面,Thread类提供了三个方法对UncaughtExceptionHandler进行处理。分别是setUncaughtExceptionHandler,setDefaultUncaughtExceptionHandler,getDefaultUncaughtExceptionHandler,从方法命名都可以看出啥意思吧。
有人也许会说,这些方法是Thread里面的,捕获的也是Thread里面的异常啊,android应用那么多线程,怎么能够捕获到呢?
肯定能够捕获到的,因为Android应用程序里面有一个主线程。我们可以在主线程里面setDefaultUncaughtExceptionHandler,然后在uncaughtException里面处理异常信息,你可以收集崩溃日志,跳转一个崩溃页面等等。
相关文章推荐
- Ruby中的异常处理代码编写示例
- MySQL抛出Incorrect string value异常分析
- 详解JavaScript中的异常处理方法
- java程序中的延时加载异常及解决方案
- .NET(C#):Emit创建异常处理的方法
- windows7服务器上weblogic启动失败异常解决方法
- 有关ajax的error与后台的异常问题解决
- 深入探讨JAVA中的异常与错误处理
- GO语言异常处理机制panic和recover分析
- 浅谈JAVA 异常对于性能的影响
- C++ 异常处理 catch(...)介绍
- php中异常处理方法小结
- PHP中异常处理的一些方法整理
- 浅析Lua编程中的异常处理
- Perl中捕获警告信息、异常信息并写入日志详解
- 格式导致的Excel导入sql出现异常的解决方法
- Powershell小技巧之捕获脚本内部的异常
- Java多线程之多线程异常捕捉
- .NET中的异常和异常处理用法分析
- SQL Server出现System.OutOfMemoryException异常的解决方法