Java异常基础

1、非正常情况种类。

异常(Exception)&错误(Error)

都继承至Throwable父类

继承的类关系结构图如下:



2、异常捕获顺序

try catch花括号都不能像if语句那样省略花括号。


顺序:从上至下,catch住后,后面的就不会catch了,所以具体异常类放前面,父类Exception放后面。

try{

...

}catch(ExcetpionClass1 e1){

...

}

catch(ExcetpionClass2 e2){

...

}

catch(ExcetpionClass3 e3){

...

}

catch(ExcetpionClass4 e4){

...

}


Java7后可以使用一个catch块捕获多个异常,使用竖线(|)隔开

catch(ExcetpionClass1 e1 | ExcetpionClass2 e2 | ExcetpionClass3 e3){

...

}


3、finally回收资源

finally块总会被执行

try块是必须存在的,catch和finally二者必选其一或两者都出现。


特例:除非在try catch中使用System.exit(1)退出虚拟机,否则finally块总会执行。


try catch中有return / throw语句时,理应退出方法,但在退出之前会检查是否有finally,若有则先执行finally.

所以避免在finally里使用return/throw语句。


4、异常(Exception)分类

Checked异常、Runtime异常


5、异常抛出

使用throws:  子类抛出的异常不能比父类方法抛出的异常更大。


使用throw:Checked异常必须放在try里,并进行catch处理。Runtime异常刚可直接抛出,相对灵活。





猜你喜欢

转载自blog.csdn.net/qiangzai110110/article/details/74626502
今日推荐