前边已经说过了finally的作用,接下来说一下在包含finally的方法中,它的执行情况
- 需要注意的是,在执行到finally之前,JVM退出了的话,finally才会执行。所以,如果finally之前有return语句,它还是会执行,下边我们来举一个例子
public class test01 {
public static void main(String[] args) {
System.out.println(getInt());
}
public static int getInt(){
int a =10;
try{
System.out.println(a/0);
a=20;
}catch (ArithmeticException e){
a=30;
return a;
}finally{
a=40;
}
return a;
}
}
输出结果为:30
有人会说,这不是没有执行吗,但是在调试的时候,会发现finally被执行了,只不过在执行之前,return 30这个路径已经生成,然后执行finally,最后再执行return返回30(也就是说finally在return执行)。
但如果finally前面有turn,finally里面也有return呢,我相信结果不言而喻,当然是返回finally里面的。