如果尝试并最终在方法中返回布尔值,会发生什么情况

Abh*_*ary 2 java

我有一个班级-公共班级Check {

public static void main(String[] args) {
    System.out.println(new Check().isRight());
}


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

isRight方法在finally子句中返回true和false,并且由于将肯定调用finally子句,因此最终它返回false,所以try中的数据实际发生了什么。我需要知道输出背后的逻辑原因,但我无法正确理解。

Mar*_*oun 5

finally仅当您使用System.exit()或JVM cranch时才会调用。

在所有其他情况下,finally将被调用,因此false将被返回。怎么样?

当到达returnin try时,控制权转移到finally那里,return false..简单。

通过官方文档可以更好地理解这一点。