读书人

RuntimeException跟非RuntimeExceptio

发布时间: 2012-12-20 09:53:21 作者: rapoo

RuntimeException和非RuntimeException的区别?
点击右边红色标题查看本文完整版:RuntimeException和非RuntimeException的区别?

RuntimeException和非RuntimeException的区别:

------解决方法--------------------
所有方法都可以在不声明throws的情况下抛出RuntimeException及其子类

不可以在不声明的情况下抛出非RuntimeException

------解决方法--------------------
比如
假设自己定义了个MyException
public String getFirstTwo(String src){
//if(src == null) throw new MyException( "String is null ");
return src.substring(0, 2);
}
注释的语句不放开,不会出错
如果别的地方调用了getFirstTwo(null),在getFirstTwo方法中,null.substring(0,2)方法是会抛出运行时异常NullPointerException的,虽然getFirstTwo方法并没有申明会throws NullPointerException,但是实际运行中这个异常还是会从getFirstTwo方法抛出给调用这个方法的地方。而如果把注释语句放开,则无法通过编译,MyException是一个非运行时异常,如果方法中的语句可能抛出这个异常必须将方法声明为public String getFirstTwo(String src) throws MyException才可以
Understand?

    

读书人网 >编程

热点推荐