public class TestException {
int m1() {
try {
int i = 10, j = 0;
System.out.println("s1");
i = i / j;
return 11;
} catch (Exception e) {
System.out.println("s2");
} finally {
System.out.println("s3");
}
System.out.println("s4");
return 2222;
}
public static void main(String[] args) {
System.out.println(new TestException().m1());
}
}
O / P: -
s1
s2
s3
s4
2222
为什么在s3
之前s4
?
在方法返回之前是不是finally
被调用了?
我在这里缺少什么?
答案 0 :(得分:6)
因为,试试的流程终于阻止了
答案 1 :(得分:1)
答案 2 :(得分:0)
你不应该将任何数字除以0.这似乎是抛出异常的原因。
finally()被调用,无论是否抛出异常,紧接在try / catch块之后和任何其他块之前。