public class tryDemo {
public static int show() {
int result = 0;
try {
return result;
} finally {
System.out.println("执行finally模块");
result = 1;
}
}
public static void main(String args[]) {
System.out.println(show());
}
}
输出结果:
执行finally模块
0
由此得出结论:
- 当 try 代码块和 catch 代码块中有 return 语句时,finally 仍然会被执行。
- 执行 try 代码块或 catch 代码块中的 return 语句之前,都会先执行 finally 语句。
- 无论在 finally 代码块中是否修改返回值,返回值都不会改变,仍然是执行 finally 代码块之前的值。
- 一般不会在finally中写return语句。但如果finally中有return语句,执行的是finally的return语句,try或 catch中的返回值不会被返回。