finally中的内容一定会执行的
try{
return 0;
} catch(Exception e){
return 1;
} finally{
return 2;
}
finally中的return会覆盖try,catch中的return,所以最后返回的是finally中的值
class Main{
public static String lem(){
System.out.println("lem");
return "return from lem";
}
public static String foo(){
int x = 0;
int y = 5;
try {
System.out.println("start try");
int b = y/x;
System.out.println("end try");
return "return from try";
} catch (Exception e) {
System.out.println("catch");
return lem() + "| return from catch";
} finally {
System.out.println("finally");
return "return from finally";
}
}
public static void main(String[] args) {
String v = foo();
System.out.println(v);
}
}
输出:
start try
catch
lem
finally
return from finally