java - 在 Java 中尝试 catch——发生异常时会发生什么?

标签 java exception try-catch

我有一个关于 Java 中的 try/catch 和异常的问题。我知道这应该是基本知识,但我想我错过了一部分对其工作原理的理解。例如,给定此代码:

String res = "";

try {
    res = methodThatCanThrowException();
    res = res + ".txt";
} catch (Exception e) {
    res = "somethingwentwrong.txt";
}

return res;

我能保证永远不会在 try 和 catch block 中设置“res”吗?如果在 try block 中的方法调用内部抛出异常,代码控制会直接转到 catch block ,对吗?有没有在 try 和 catch block 中都给“res”赋值的场景?

最佳答案

如果 methodThatCanThrowException 抛出异常,res 将不会在 try block 中分配,所以只有 catch block 会分配它(假设你修复了你的 catch block )。

但是,即使在 res 已经赋值后抛出异常,catch block 也会用新值覆盖它,所以它是否被两者赋值都没有关系。

关于java - 在 Java 中尝试 catch——发生异常时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33646902/

相关文章:

java - 动态创建一个对象,其中类名作为字符串给出

python - 接下来在迭代器中优雅地捕获 python 异常

C# 当数字超出范围时应该抛出什么异常

python - 如何在不停止/退出程序的情况下捕获并打印完整的异常回溯?

java - 如何修复 do-while 循环中的逻辑,然后应用 try-catch block 来捕获并显示来自另一个类的错误消息?

java - getContextClassLoader().getResource ("") 在 Weblogic 上返回 null,而在 JBoss 上返回路径值

java - 黑白棋中的 Alpha Beta 剪枝问题

java - 没有调试日志代码保护的 apache.commons.logging.log 性能

Java 异常处理和堆栈跟踪

r - 如何在tryCatch中显示错误位置?