之前遇到过一个问题:在try语句中如果有return语句,那么后面的finally是否还会执行?
写了段程序验证了下:
public class Test {
public static void main(String[] args) {
int i = 0;
try {
i = 9;
System.out.println("1:" + i);
return;
} catch (Exception e) {
e.printStackTrace();
} finally {
i = 8;
System.out.println("2:" + i);
}
}
}
发现结果为:
1:9
2:8
说明finally中得语句确实执行了,上网查了下相关问题,结论为:不管try中是否发生异常,或者有return类似语句,finally中语句都会执行。