zoukankan      html  css  js  c++  java
  • Android全局捕获异常处理

    很多时候我们在程序运行的时候,一旦出现了一个异常,而我们在程序中没有捕捉到,没有处理,就会弹出一个

    对话框,导致程序崩掉,这种情况的用户体验极差,接下来就来说如何解决这个问题,程序中任何漏掉的异常处理我们都可以

    捕捉到,就是全局异常捕获,代码如下:

     1 package com.qdsj.hxcmjj.util;
     2 
     3 import java.lang.Thread.UncaughtExceptionHandler;
     4 
     5 import android.app.ProgressDialog;
     6 import android.content.Context;
     7 
     8 /**
     9  * 异常处理类
    10  * @author jansin
    11  *
    12  */
    13 public class CrashHandler implements UncaughtExceptionHandler {
    14     public static final String TAG = "CrashHandler";
    15     private static CrashHandler INSTANCE = new CrashHandler();
    16     private Context mContext;
    17     ProgressDialog loadingDialog;
    18 
    19     private CrashHandler() {
    20     }
    21 
    22     public static CrashHandler getInstance() {
    23         return INSTANCE;
    24     }
    25 
    26     public void init(Context ctx) {
    27         mContext = ctx;
    28         Thread.setDefaultUncaughtExceptionHandler(this);
    29         
    30         //初始化异常处理类
    31     }
    32 
    33     @Override
    34     public void uncaughtException(Thread arg0, Throwable arg1) {
    35     
    36         //捕获到异常后在这里做处理
    37     }
    38 
    39 
    40 }
    UncaughtExceptionHandler全局异常捕获类 如代码中所示

    有了这个自定义类之后,我们还需要在程序运行之前对异常处理类进行初始化,最好是在application类中对全局异常捕获类进行初始化
    有了这个类之后,就可以解决我们遗漏的异常捕获导致程序奔溃的问题了。
  • 相关阅读:
    遍历卷,遍历磁盘
    宽字符
    GetSystemDirectory
    WIN32_FILE_ATTRIBUTE_DATA structure
    几条shell命令
    log4j学习(二)不同类的日志输出到不同的文件
    Java中的split和join
    如何使用socket进行java网络编程(二)
    如何使用socket进行java网络编程(一)
    log4j学习(一)最简单的例子
  • 原文地址:https://www.cnblogs.com/all88/p/4002053.html
Copyright © 2011-2022 走看看