上級 › finally の return が結果を上書きする問題 › パターン1
finally の return が結果を上書きする問題
finallyでreturnを書いてはいけない理由と、try-with-resourcesによる安全なリソース解放を扱います。
1 public class Main { 2 static int f() { 3 try { return 1; } 4 ___________________ { return 2; } ^ 5 } 6 public static void main(String[] args) { 7 System.out.println(f()); 8 } 9 }
出力: 2期待: 1 (コンパイルは通っています)
空欄を埋めてビルドを通す
finally内のreturnはtry内のreturnを上書きします。finallyでreturnを書かないのが鉄則です。
次の問題