开发中异常的处理

/**
 * 代表的是当前应用程序的进程.
 */
public class MobliesafeApplication extends Application {
    public BlackNumberInfo info;

    @Override
    public void onCreate() {
        super.onCreate();
        Thread.currentThread().setUncaughtExceptionHandler(
                new MyExceptionHandler());// 这样就能够让异常的处理器设置到我们的程序中
    }

    public class MyExceptionHandler implements UncaughtExceptionHandler {
        private static final String TAG = "MyExceptionHandler";

        @Override
        public void uncaughtException(Thread arg0, Throwable arg1) {
            Logger.i(TAG, "发生了异常");
            try {
                Field[] fields = Build.class.getDeclaredFields();// 可以通过Build的属性来获取到手机的硬件信息,由于不同手机的硬件信息部一定有,所以要用反射得到
                StringBuffer sb = new StringBuffer();
                for (Field field : fields) {
                    String info = field.getName() + ":" + field.get(null)
                            + "\n";
                    sb.append(info);
                }
                StringWriter sw = new StringWriter();
                PrintWriter pw = new PrintWriter(sw);
                arg1.printStackTrace(pw);// 通过这个来得到异常信息
                String errorlog = sw.toString();

                File file = new File(Environment.getExternalStorageDirectory(),
                        "error.log");
                FileOutputStream fos = new FileOutputStream(file);
                sb.append(errorlog);
                fos.write(sb.toString().getBytes());
                fos.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            android.os.Process.killProcess(android.os.Process.myPid());// 这个是只能杀死自己不能杀死别人,这时候系统发现程序在自己的范围之内死了,系统就会重启程序到出现错误之前的那个Activity。
        }
    }
}
时间: 2024-10-08 03:33:41

开发中异常的处理的相关文章

【06-17】开发中预到的异常

hibernate: bug: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 solution: hibernate在执行save(Object obj)时,如果obj的主键不为空,则会去update而不是save操作,此时如果obj的主键不为空,但是在数据库中查不到时则会抛出该异常,因此save时可以显示将主键字段设为Null. [06-17]开发中预到的

JAVA开发中遇到的异常总结

最常见的五种异常:必会,面试题: 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException ====================================================

开发中关于Fragment异常的两个问题

下边两个问题,是在开发中碰到的一些关于Fragment的偶发性的问题,今天时间比较多,就在网上搜了一些解决方式: 1.关于Fragment(XXFragment) not attached to Activity 异常.出现该异常,是因为Fragment的还没有Attach到Activity时,调用了如getResource()等,需要上下文Content的函数.解决方法,就是等将调用的代码写在OnStart()中.网上还有几处这样的参考:http://stackoverflow.com/que

Java开发中常见异常整理

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberF

Android开发中关于Movie导入GIF图片异常的问题

下面麦子学院来给各位同学介绍一篇关于Android开发中关于Movie导入播放GIF图片文件异常IOException.reset的解决办法,希望些方法对你有帮助. 使用Movie播放GIF图片时,能正常导入assets中的gif文件,如: 代码如下 is=context.getResources().openRawResource(R.drawable.mygif); movie =Movie.decodeStream(is); 然而把网络图片加载到本地后,却报以下错误: 代码如下 java.

前端开发中的Error以及异常捕获

本文首发于公众号:符合预期的CoyPan 写在前面 在前端项目中,由于JavaScript本身是一个弱类型语言,加上浏览器环境的复杂性,网络问题等等,很容易发生错误.做好网页错误监控,不断优化代码,提高代码健壮性是一项很重要的工作.本文将从Error开始,讲到如何捕获页面中的异常.文章较长,细节较多,请耐心观看. 前端开发中的Error JavaScript中的Error JavaScript中,Error是一个构造函数,通过它创建一个错误对象.当运行时错误产生时,Error的实例对象会被抛出.

iOS开发中常见的一些异常

iOS开发中常见的异常包括以下几种NSInvalidArgumentExceptionNSRangeExceptionNSGenericExceptionNSInternallnconsistencyExceptionNSFileHandleOperationException NSInvalidArgumentException非法参数异常是objective-C代码最常出现的错误,所以平时写代码的时候,需要多加注意,加强对参数的检查,避免传入非法参数导致异常,其中尤以nil参数为甚. 1.集

在移动开发中常用的开源库总结

1.为什么需要开源库? 我个人觉得有以下几个原因: 1>我们的项目比较赶,但是又用到一些比较复杂的模块,这些模块不是系统自带的,或者说系统自带的满足不了需求,同时在一些开源网站上面又有类似的或者是满足我哦们需求的开源项目和库,拿来就可以减少我们很多的工作量. 2>开源库从另外一方面来说就是为了提高代码的重用性,大家使用了这个开源库,然后提交一些bug,通过大家的力量完善这个开源项目. 2.我常用的开源库? 我使用的一些开源项目主要都是在github上面很热门的项目: 图片加载:Android-

一探前端开发中的JS调试技巧

前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本,提升工作效率,掌握前端开发调试技巧尤为重要. 本文将一一讲解各种前端JS调试技巧,也许你已经熟练掌握,那让我们一起来温习,也许有你没见过的方法,不妨一起来学习,也许你尚不知如何调试,赶紧趁此机会填补空白. 骨灰级调试大师Alert 那还是互联网刚刚起步的时代,网页前