Java中finally块是否总是执行?我们来探讨细节
大家好!我是一名初学Java的开发者,对finally块有些困惑。我读到过finally总是会执行,无论是否抛出异常。但在实践中,我遇到了几种似乎并非如此的情况。
以下是我为测试编写的示例代码:
```java
public class FinallyTest {
public static void main(String[] args) {
System.out.println("结果: " + testFinally());
}
public static int testFinally() {
try {
System.out.println("在try块中");
return 1;
} catch (Exception e) {
System.out.println("在catch块中");
return 2;
} finally {
System.out.println("在finally块中");
return 3; // 这让我困惑
}
}
}
```
我原本期望方法返回1(来自try),但它返回了3!看来finally覆盖了return?还是我理解有误?
另外,我听说如果在