gpt4 book ai didi

java - 故意抛出运行时异常

转载 作者:行者123 更新时间:2023-12-01 14:49:38 26 4
gpt4 key购买 nike

我正在执行以下代码:

public int returnSomething() {
try {
throw new RuntimeException("foo!");
} finally {
return 0;
}
}

请解释一下这段代码的作用。我的分析是,我们在方法内部抛出了运行时异常,但之后“finally” block 肯定会执行。这是正确的吗?

最佳答案

答案就在 Java Language Specification section 14.20.2 。您需要注意,返回算作“突然完成”:

...

  • If execution of the try block completes abruptly because of a throw of a value V, then there is a choice

    • [...]
    • If the finally block completes abruptly for any reason, then the try statement completes abruptly for the same reason.

(所有路径都有相同的终点,但措辞略有不同。)

所以总体结果是返回0,异常被丢弃。

finally block 返回很少是一个好主意。

关于java - 故意抛出运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15018487/

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