当 finally 子句包含 return 语句时,将会出现一种意想不到的结果 ,
假设利用 return语句从 try 语句块中退出。 在方法返回前 ,finally子句的内容将被执行。
如果 finally 子句中也有一个 return 语句 , 这个返回值将会覆盖原始的返回值。
public static void main(String[] args) {
int nun = getNun();
System.out.println(nun);
}
@SuppressWarnings("finally")
public static int getNun(){
try {
return 2;
} finally{
return 8;
}
}
执行如上代码: