在try-catch块中,“finally”是否覆盖异常块中的“return”? [重复]

问题描述 投票:0回答:1

似乎returnfinally覆盖了。那是对的吗? 例如:

public String myMethod() {

    try {
        // Do stuff

    } catch(Exception e) {
        // Handle exception
     return failed;

    } finally {
        // Close sockets
    }

    return success;    
}

如果我在上面的代码中得到异常,该方法仍然会返回成功。

java try-catch
1个回答
-1
投票

finally确保无论何种类型的代码被写入,即使发生异常也会执行。如果你想返回,你的方法不成功,你可能想要这样做:

public String myMethod(){
boolean success = true;
try{
  // Do stuff

}catch(Exception e){
 // handle exception
 success = false;

}finally{
  //close sockets
}
return success;

}
© www.soinside.com 2019 - 2024. All rights reserved.