在try-catch块中,异常块中的“最终”是否覆盖“返回”?

时间:2018-09-05 06:30:11

标签: java try-catch

似乎return在catch块中被finally覆盖了。正确吗?
例如:

public String myMethod() {

    try {
        // Do stuff

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

    } finally {
        // Close sockets
    }

    return success;    
}

如果以上代码中出现异常,则该方法仍返回成功。

1 个答案:

答案 0 :(得分:-1)

finally确保即使发生异常也将执行在其中写入的任何类型的代码。 如果要返回,则说明方法不成功,则可能需要这样做:

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

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

}finally{
  //close sockets
}
return success;

}