java - try catch finally 中 return 的行为

标签 java

在下面的代码中,我想了解return语句的行为。Finally block 将始终执行,因此该函数将始终返回30 ,但是try block 中的return语句有什么意义。try block 中的return是否向其调用者返回值,调用者会将这个值存储在某个堆栈中,并在finally block 中看到return语句时替换?或者 try block 中的 return 会调用 finally block ?

public static int test() {
    try {
           return 10;// to whom this 10 is returned to?
    } catch (Exception e) {
       return 20;
    }finally{
           System.out.println("Finally");
       return 30;
    }
}

提前致谢。

最佳答案

1030 都会返回。但是 30 位于堆栈的顶部(最上面的元素)。所以调用者得到的返回值为30

关于java - try catch finally 中 return 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22068289/

相关文章:

java - Gradle拉取依赖时版本冲突

java - 运算符>>和<<在处理中的含义

javascript - 未找到配置文件 : No non–expired provisioning profiles were found

java - Java 中的分区函数 NullPointerException

java - 无法从初始 URI [RedisURI [主机 ='127.0.0.1',端口 = 7001]] 检索初始集群分区

java - Jenkins headless linux从机连接错误

Java - 打包文件 (zip) 更改最后修改日期

java - JAVA中删除二维TreeMap中的实例

Java 和 MySQL - 列数与第 1 行的值数不匹配

java - 使用 eclipse 和 axis 2 生成第一个 Web 服务客户端时出现问题