public class TryCatchOrder {
public static void main(String[] args) {
System.out.println(new TryCatchOrder().test());
}
static int i = 0;
public int test() {
try {
System.out.println("抛出异常!");
throw new Exception();
} catch (Exception e) {
System.out.println("进入catch块了!");
return ++i;
} finally {
System.out.println("进入finally块了!");
++i;
}
}
}
输出为:1
public class TryCatchOrder {
public static void main(String[] args) {
System.out.println(new TryCatchOrder().test());
}
static int i = 0;
public int test() {
try {
System.out.println("抛出异常!");
throw new Exception();
} catch (Exception e) {
System.out.println("进入catch块了!");
return ++i;
} finally {
System.out.println("进入finally块了!");
return ++i;
}
}
}
输出为:2
经过调试,我发现,第一个例子里面的执行顺序是catch--finally--catch,第二个例子里面是catch--finally
还是有点没懂,为什么第一个例子的输出是 1。
本文通过两个示例分析了Java中try-catch-finally语句块的执行顺序及输出结果,解释了finally块在异常处理过程中的作用。

1万+

被折叠的 条评论
为什么被折叠?



