Code example for Thread.UncaughtExceptionHandler

Methods: sleep, uncaughtException

0
     * 当UncaughtException发生时会转入该重写的方法来处理 
     */ 
    public void uncaughtException(Thread thread, Throwable ex) {
        if (!handleException( ex ) && mDefaultHandler != null) {
            // 如果自定义的没有处理则让系统默认的异常处理器来处理 
            mDefaultHandler.uncaughtException( thread, ex );
        } else { 
            try { 
                Thread.sleep( 3000 );// 如果处理了,让程序继续运行3秒再退出,保证文件保存并上传到服务器
            } catch (InterruptedException e) {
                e.printStackTrace( );
            } 
            // 退出程序 
            android.os.Process.killProcess( android.os.Process.myPid( ) );
            System.exit( 1 );
        } 
    } 
 
    /** 
     * 自定义错误处理,收集错误信息 发送错误报告等操作均在此完成. 
     *