当前位置: 代码迷 >> J2SE >> Java为何使用 catch Exception e 无法捕获NullPointerException解决思路
  详细解决方案

Java为何使用 catch Exception e 无法捕获NullPointerException解决思路

热度:503   发布时间:2016-04-24 01:38:48.0
Java为何使用 catch Exception e 无法捕获NullPointerException
使用android写的程序,在个别手机上出现空指针异常,很是不解为何没有正常捕获处理,等待高手解答


源码:
Java code
    public boolean register(String mima){        try{            [color=#FF0000]String mingWen = decrypt(mima);[/color]            String IMEI = getIMEI();                        mIsRegister = MEI.equals(mingWen);        }catch(Exception e){            e.printStackTrace();            mIsRegister = false;        }        return mIsRegister;    }    private String decrypt(String miString) {        byte[] miByte = Base64.decode(miString);        byte[] mingByte = rsa.decrypt(miByte);[color=#FF0000]        return new String(mingByte);[/color]    }

出错log
Java code
    java.lang.NullPointerException        at java.lang.String.<init>(String.java:198)        at com.anxing.englishgameII.Register.decrypt(Register.java:116)        at com.anxing.englishgameII.Register.register(Register.java:84)        at com.anxing.englishgameII.GameApp.onCreate(GameApp.java:48)        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1045)


------解决方案--------------------
你已经捕获了,这个异常堆栈是你用 e.printStackTrace(); 方法输出的。
------解决方案--------------------
try{

}catch(Throwable e){

}
可以捕获一切exception
------解决方案--------------------
汗~~~

你不是已经捕获了空引用异常了吗?

而且空引用异常已经执行了捕获代码了啊。。。。那就是e.printStack();

你要问的是如何手动处理空引用异常吧?这个非常简单。。。。只要在try块中相关语句中加一个if(Object!=null)就行了。。。。。
//没学过j2me,你这里报异常应该是String mingWen吧,只要你在判断一下if(minWen!=null){你的语句}

  相关解决方案