public static int run(){
try {
return 2;
}
catch (Exception e) {
System.out.println("catch");
}
finally{
System.out.println("finally");
}
return 0;
//运行结果 finally 2
}
public static int run(){
int a = 0;
try{
a = 2;
return a;
}
finally{
System.out.println("It is in final chunk.");
a++;
return a;
}
}
//输出结果it is in final chunk 3
1、finally块一定会执行.
2、finally前有return,会先执行return语句,并保存下来,再执行finally块,最后return。
3、finally前有return、finally块中也有return,先执行前面的return,保存下来,再执行finally的return,覆盖之前的结果,并返回