Android开发使用UncaughtExceptionHandler捕获全局异常

在集成了统计SDK(友盟统计,百度统计等)之后,有一个非常有利于测试的功能:错误分析!此功能能够将程序在运行中碰到的崩溃(runtimeException)问题反馈到服务器,帮助开发者改善产品,多适配机器。

然而在公司Android开发中不集成这些SDK,那应该怎么实现这样的功能呢?下面让我们来看下如何使用UncaughtExceptionHandler来捕获异常。

首先实现创建一个类,实现UncaughtExceptionHandler接口。代码如下:

复制代码 代码如下:public class CrashHandler implements UncaughtExceptionHandler { 
 
    @Override 
    public void uncaughtException(Thread thread, Throwable ex) { 
        //处理异常 
        Log.e("崩溃",thread.getName()+ex.toString()); 
        //发送到服务器 
        //dialog提醒 
    } 
 
}

有处理代码了,然后就需要触发它的地方:

在程序的入口activity的oncreate中添加:

复制代码 代码如下:Thread.setDefaultUncaughtExceptionHandler(new CrashHandler());

是不是很简单啊!

以上就是Android开发中使用UncaughtExceptionHandler捕获全局异常的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家。

时间: 2024-09-20 05:23:40

Android开发使用UncaughtExceptionHandler捕获全局异常的相关文章

Android开发使用UncaughtExceptionHandler捕获全局异常_Android

在集成了统计SDK(友盟统计,百度统计等)之后,有一个非常有利于测试的功能:错误分析!此功能能够将程序在运行中碰到的崩溃(runtimeException)问题反馈到服务器,帮助开发者改善产品,多适配机器. 然而在公司Android开发中不集成这些SDK,那应该怎么实现这样的功能呢?下面让我们来看下如何使用UncaughtExceptionHandler来捕获异常. 首先实现创建一个类,实现UncaughtExceptionHandler接口.代码如下: 复制代码 代码如下: public cl

Android中捕获全局异常实现代码_Android

1.实现UncaughtExceptionHandler,在方法uncaughtException中处理没有捕获的异常. public class GlobalException implements UncaughtExceptionHandler { private final static GlobalException myCrashHandler = new GlobalException(); private GlobalException() { } public static s

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

毕竟人不是神,谁写的程序都会有bug,有了bug不可怕,可怕的是出错了,你却不知道错误在哪里.所以我们需要将应用程序中抛出的所有异常都记录起来,不然出了错,找问题就能要了你的命.下面我们主要讨论的是如何捕捉全局的异常.基本上在winform或web中捕获全局异常的思路都是一样的,在全局的应用程序对象中添加异常捕获的代码,并写入日志文件中. 一.在Winform程序中捕获全局异常 在winfrom中我们需要了解Application对象中的两个事件 ①Application.ThreadExcep

全局异常捕获-swift怎么捕获全局异常

问题描述 swift怎么捕获全局异常 需要手动统计崩溃信息 NSSetUncaughtExceptionHandler { (exception) -> Void in let array = exception.callStackSymbols let reason = exception.reason let name = exception.name print(array) print("reason:(reason)|name:(name)") } appdelegat

Android UncaughtExceptionHandler进行全局异常捕获

        在实际开发过程中,我们的APP由于各种原因,难免会有Crash现象(应用程序XXX已经停止).这样给用户一种很不友好的感觉,那么我们如何去处理这种情况呢?答案就在实现UncaughtchExceptionHanlder,复写uncaughtException()方法.         当crash发生的时候,系统会调用UncaughtchExceptionHanlder#uncaughtException().在uncaughtException()中我们可以选择收集错误信息,然

C# WinForm捕获全局异常

static class Program     {         /// <summary>         /// 应用程序的主入口点.         /// </summary>         [STAThread]         static void Main()         {             try             {                 //设置应用程序处理异常方式:ThreadException处理             

android 捕获系统异常并上传日志具体实现_Android

在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛出的异常排查错误.但是当程序开发完毕,版本稳定,需要上线时,为了避免抛出异常影响用户感受,可以用UncaughtExceptionHandler捕获全局异常,对异常做出处理.比如我们可以获取到抛出异常的时间.手机的硬件信息.错误的堆栈信息,然后将获取到的所有的信息发送到服务器中,也可以发送到指定的邮件中,以便及时修改bug. 示例: 自定义异常类实现UncaughtExceptionHandler接口,当某个页面出现异常就会调用

android 捕获系统异常并上传日志具体实现

在做项目时,经常会把错误利用异常抛出去,这样在开发时就可以通过手机抛出的异常排查错误.但是当程序开发完毕,版本稳定,需要上线时,为了避免抛出异常影响用户感受,可以用UncaughtExceptionHandler捕获全局异常,对异常做出处理.比如我们可以获取到抛出异常的时间.手机的硬件信息.错误的堆栈信息,然后将获取到的所有的信息发送到服务器中,也可以发送到指定的邮件中,以便及时修改bug. 示例: 自定义异常类实现UncaughtExceptionHandler接口,当某个页面出现异常就会调用

详解Android全局异常的捕获处理_Android

在Android开发中在所难免的会出现程序crash,俗称崩溃.用户的随意性访问出现测试时未知的Bug导致我们的程序crash,此时我们是无法直接获取的错误log的,也就无法修复Bug.这就会极大的影响用户体验,此时我们需要注册一个功能来捕获全局的异常信息,当程序出现crash信息,我们把错误log记录下来,上传到服务器,以便于我们能及时修复bug.实现这个功能我们需要依赖于UncaughtExceptionHandler这个类,UncaughtExceptionHandler是一个接口,在Th