gpt4 book ai didi

java - try 和 catch 是否被视为 if 之后的一个语句?

转载 作者:行者123 更新时间:2023-12-02 01:22:10 25 4
gpt4 key购买 nike

if (instance != null)
try (InputStream stream = new FileInputStream(file)) {
instance = getInstance(stream);
instance.sourceFile = file;
instances.put(instance.sourceFile.getPath(), instance);
return instance;
} catch (Exception e) {
throw new RuntimeException("Cannot locate '" + file + "'. " + e, e);
}
return instance;

在代码库中遇到这个问题,想知道 if 是否适用于整个 try/catch 或者是否被忽略。如果 if 应用于整个 try/catch,我想用大括号将其括起来,但我不想破坏任何东西,而且无法测试它。

最佳答案

try catch 是一个语句,您可以将整个 block 包装到 if 语句的大括号中。这与您当前的代码具有相同的语义。

if (instance != null) {
try (InputStream stream = new FileInputStream(file)) {
instance = getInstance(stream);
instance.sourceFile = file;
instances.put(instance.sourceFile.getPath(), instance);
return instance;
} catch (Exception e) {
throw new RuntimeException("Cannot locate '" + file + "'. " + e, e);
}
}

编译器不允许不带 trycatch,因此您也可以在设置右大括号时通过反复试验得出相同的结论。

关于java - try 和 catch 是否被视为 if 之后的一个语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57498940/

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