最後に、リソースを閉じるためにtry-catchステートメントで使用されるため、finallyステートメントブロックのコードは、例外がスローされたかどうかに関係なく実行されます。また、tryステートメントブロックまたはcatchステートメントブロックでreturnが実行された場合でも、finallyステートメントブロックは呼び出されます。
次に、実験してみましょう。
代码:
public class TestFinally {
public static void main(String[] args) {
System.out.println(test(null)+","+test("2")+","+test(""));
}
public static int test(String s){
try{
String[] ss = s.split(",");
return 1;
}catch (NullPointerException e){
return 2;
}catch (Exception e){
return 3;
}finally {
return 4;
}
}
}
最終的な実行結果は、
4、4、4で上記のステートメントを検証します。