gpt4 book ai didi

java - 异常处理 Try-catch : What happens if var 1 , 2 和 3 为 false

转载 作者:行者123 更新时间:2023-12-01 13:26:33 26 4
gpt4 key购买 nike

我需要跟踪以下代码。会发生什么?我已经走到这一步了...

让我们开始(现在尝试 f)F 开始下一次抛出 Exc1,因为 var1 = false现在我要返回到 main 中尝试并转到方法 d 吗?

void main() {
println("Let's start");
try {
f();
d();
} catch (Ex1 ex) {
println("main caught Ex1");
} catch (Ex3 ex) {
println("main caught Ex3");
} finally {
println("main finally");
}
println("main end");
}

void f() {
println("F begins");
try {
if (var1) {
d();
} else {
throw new Ex1();
}
} catch (Ex2 ex) {
println("f caught Ex2");
}
println("a end");
}

void d() {
println("d begin");
try {
if (var2) throw new Ex2();
if (var3) throw new Ex3();
} catch (Ex3 ex) {
println("d caught ex3");
} finally {
println("d finally");
}
println("d end");
}

最佳答案

在此代码中:

try {
f();
d();
} catch (Ex1 ex) {
println("main caught Ex1");
} catch (Ex3 ex) {
println("main caught Ex3");
} finally {
println("main finally");
}

如果f()抛出异常,try block 将退出。无论是否捕获异常,main()不会调用d()。如果有catch block 捕获异常,则会执行该异常,然后执行finally block ;否则,finally block 将被执行,然后再次抛出异常。但在这两种情况下,d()都不会被调用。

关于java - 异常处理 Try-catch : What happens if var 1 , 2 和 3 为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21788777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com