首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

RuntimeException和非RuntimeException的区别?

2014-01-26 
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?

        

热点排行