gpt4 book ai didi

java - 这段代码在java内部处理中是如何工作的

转载 作者:行者123 更新时间:2023-12-01 23:29:39 25 4
gpt4 key购买 nike

我知道即使代码抛出异常或者它成功完成,finally block 也会执行,现在我怀疑的是这段代码

returns 40

这是显而易见的,但现在如果我

comment return 40;

it returns 10

任何人都可以帮助我理解 JVM 如何返回 10 为什么它不提示函数应该返回一个值。

public class ExceptionTest {
public static void main(String[] args) {
int i= returnSomething();
System.out.println(i);
}

private static int returnSomething() {

try{
System.out.println("try");
return 10;
}
catch(Exception e)
{
return 20;
}
finally
{
System.out.println("finally ");
return 40;
}
}

}

最佳答案

就在执行 try block 中的 return 之前,控制权被转移到 finally block 。执行finally block 时,该函数将返回除非您在finally block 本身中有一个return

因此,当您在 finally block 中有 return 时,该函数返回 40;当您在 try block 中返回值时,该函数返回 try block 中的值。不要在finally block 中返回。

<小时/>

建议在finally block 中返回。

关于java - 这段代码在java内部处理中是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19533023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com