应用异常终止时将错误发给服务器的原理

原创 2013年12月03日 13:48:30

    虽然我们的APP在发布之前会经过层层的测试,保证万无一失,但是人算不如天算,总有一些异常是没法避免的。所以,对于开发者而言,收集这些异常变得尤为重要了,处理这些异常可是我们的应用更加健壮。对于异常反馈的机制如下:

Thread类中有一个静态方法Thread.setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh),当线程由于位被捕获的异常而突然终止的时候,就会调用传进去的Thread.UncaughtExceptionHandler接口,那么我就在这个接口的uncaughtException(Thread t, Throwable e)方法中手机放生的异常,上传到服务器。

通用做法:

一、创建一个类继承Application类,并在配置文件中配置

<application android:name="com.example.crashtest.app.CrashApplicaiton"/>


二、写一个类实现Thread.UncaughtExceptionHandler接口。

public static class CrashHandler implements UncaughtExceptionHandler{

private static final  CrashHandler INSTANCE = null;

public static CrashHandler getInstance(){

if(INSTANCE != null){

return INSTANCE;

}else{

return new CrashHandler();

}

}

public void init(){

Thread.setDefaultUncaughtExceptionHandler(this);

}

@Override

public void uncaughtException(Thread thread, Throwable ex) {

thread.interrupt();

System.out.println("程序崩溃了,请在此处进行处理");

//关闭打开的Activity,根据自己的需求在这里面进行具体的处理。

for(int i = 0;i<activitys.size();i++){

Activity act = activitys.get(i);

act.finish();

}

}

}


三、Application的onCreate()方法中初始化CrashHandler

@Override

public void onCreate() {

CrashHandler ch = CrashHandler.getInstance();

ch.init();

if(activitys == null){

activitys = new ArrayList<Activity>();

}

super.onCreate();

}



java所有运行时异常以及错误.

  • 2014年11月26日 18:13
  • 39KB
  • 下载

Retrofit+RxJava 优雅的处理服务器返回异常、错误

开始本博客之前,请先阅读: Retrofit请求数据对错误以及网络异常的处理 异常&错误实际开发经常有这种情况,比如登录请求,接口返回的 信息包括请求返回的状态:失败还是成功,错误码,User对...
  • jdsjlzx
  • jdsjlzx
  • 2016年07月11日 17:32
  • 35964

JBPM4运行时错误异常总结

  • 2009年12月23日 09:35
  • 27KB
  • 下载

Dotnet跨应用程序域访问和需要特别注意的地方(WCF消息通道处于错误状态异常中的一种情况)

今天在做分布式计算原型的时候出现了WCF调用错误,错误大意是指消息通道处于错误状态,经过跟踪调试,发现是由于跨域调用的问题造成的.问题场景是这样:客户端C通过WCF调用远程服务,该服务S启用一个新的应...

COM组件设计与应用(十二) 错误与异常处理

COM组件设计与应用(十二) 错误与异常处理 作者:杨老师 下载源代码 一、前言   程序设计中,错误处理必不可少,而且通常要占用很大的篇幅。本回书着落在 COM 中的错误(异常...
  • jiht594
  • jiht594
  • 2012年02月14日 14:07
  • 414

JavaWeb应用中错误和异常处理方法研究

0.引言              大多数的JavaWeb应用一般都采用多层架构[1~2], 即软件结构采用分层的思想。这种分层架构的软件必然使软件的耦合性降低,内聚性加强,但分层带来的缺点是增加了软...

[php-fpm自动拉起]从nginx的502错误出发谈锁机制在服务器自动监控脚本中的应用

由于负载能力无法满足需求,纸飞机服务器从去年7月开始迁移到nginx服务器,不过PHP 5.2上安装了eAccelerator扩展后服务器经常发生500错误,无奈升级到了PHP 5.3系列,虽然说50...

ASP.NET中"/"应用程序中的服务器错误的方法

ASP.NET中”/”应用程序中的服务器错误
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:应用异常终止时将错误发给服务器的原理
举报原因:
原因补充:

(最多只允许输入30个字)