gpt4 book ai didi

java - 从 try finally block 中的 try block 返回

转载 作者:搜寻专家 更新时间:2023-11-01 03:33:02 26 4
gpt4 key购买 nike

我在从 try 返回和 finally 也有两个代码片段。第一个工作正常并从 finally 打印,后来在标记为 line1 的行给出编译时错误。

第一个片段

class abc {
public static void main(String args[]) {
System.out.println("1");
try {
return;
} catch (Exception ex) {
System.out.println("Inside catch");
} finally {
System.out.println("2");
}
System.out.println("3");
}
}

第二个片段(编译时错误)

class Test11 {
public static void main(String[] args) {
Test11 test = new Test11();
System.out.println("1");
try {
return;
} finally {
System.out.println("2");
}
// COMPILER ERROR
// System.out.println(test instanceof Test11);// line 1
}
}

回答:原因是在第一个片段中有一条执行路径,后面跟着 catch block ,但在第二个片段中没有这样的路径,所以最终无法访问 finally 之后的语句。

最佳答案

第 1 行是无法访问的语句。因为不可能去line1。

如果出现异常,它将在 try 中中断。如果不是从方法返回。

如果有 catch block ,它确保如果 try block 中发生异常,它将转到第 1 行

关于java - 从 try finally block 中的 try block 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42525852/

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