相关疑难解决方法(0)

Java try-finally返回设计问题

在Java中,try {...} finally {...}对我来说有些不直观.如另一个问题所示,最终总是在Java中执行吗?,如果try块中有return语句,则在定义finally块时将忽略它.例如,功能

boolean test () {
    try {
        return true;
    }
    finally {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

总是会返回false.我的问题:这是为什么?这个由Java做出的设计决策背后有一个特定的哲学吗?我很感激任何见解,谢谢.

编辑:我特别感兴趣的是'为什么'Java认为可以违反我定义的语义.如果我在try块中'返回',那么该方法应该在那里返回.但是JVM决定忽略我的指令并从一个实际尚未到达的子程序返回.

java

38
推荐指数
1
解决办法
2万
查看次数

try,catch和finally的执行顺序是什么

如果我们在try中给出这样的return语句,那么执行的顺序是什么

try{
--- ----
-----
return a;
}

catch{
}
finally{
}
Run Code Online (Sandbox Code Playgroud)

如果在try中有返回,那么将执行的顺序是什么.请告诉我

java exception

6
推荐指数
1
解决办法
2902
查看次数

标签 统计

java ×2

exception ×1