-
try:监控区域,执行可能产生异常的代码,不能单独出现。当try块中有语句引发异常时,系统将不再执行try块中未执行的语句,而执行匹配的catch块。
-
catch:捕获、处理异常。一般按照由小到大的顺序捕获,也就是先截获子异常,再截获父异常。
-
finally:善后处理,无论是否发生异常,代码总能执行。finally必须和try一块使用。
-
如果在catch中遇到了return或者异常等能使该函数终止的话那么有finally就必须先执行完finally代码块里面的代码然后再返回值。
-
一般格式:
try {
} catch (OneException e) {
} catch (TwoException e) {
} finally {
}
或者:
try {
} catch (OneException e1|TwoException e2) {
}finally {
}
-
示例:
class Person{
String name;
}
public class Test {
public static void main(String[] args) {
Person p = null;
try{
p.name = "我是一个不能赋值给null的字符串";
}catch(java.lang.NullPointerException e1){
System.out.println("空指针异常");
}finally{
System.out.println("end1");
}
try{
System.out.println(100 / 0);
}catch(Exception e2){
System.out.println("0不能作为分母出现!请回小学补习算术");
}finally{
System.out.println("end2");
}
}
}
-
输出:
空指针异常
end1
0不能作为分母出现!请回小学补习算术
end2