Avatar ·

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?还是我理解有误? 另外,我听说如果在