【发布时间】:2021-05-30 16:05:00
【问题描述】:
我用这段代码来测试try catch finally:
public class My{
public static void main(String[] args) {
System.out.println(fun1());
System.out.println(fun2());
}
public static int fun1() {
int a = 1;
try {
System.out.println(a / 0);
a = 2;
} catch (ArithmeticException e) {
a = 3;
return a;
} finally {
a = 4;
}
return a;
}
public static int fun2() {
int a = 1;
try {
System.out.println(a / 0);
a = 2;
} catch (ArithmeticException e) {
a = 3;
return a;
} finally {
a = 4;
return a;
}
}
}
输出:
3
4
我知道 finally 会一直运行。我想这两个函数的结果应该是4,但实际上fun1()是3,fun2()是4。为什么?
【问题讨论】:
标签: java exception try-catch try-catch-finally