Исключение RuntimeException
выбрасывается в try
блоке, не будучи пойманным, а finally
пункт вызывает System.exit()
.
public static void main(String[] args) {
try {
Integer.valueOf("NotANumber");
} finally {
System.out.println("finally");
System.exit(0);
}
}
На выходе получается
finally
Если из finally убрать System.exit(0)
, то получится
finally
Exception in thread "main" java.lang.NumberFormatException: For input string: "NotANumber"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.valueOf(Integer.java:554)
at exception.MyExcepTest.main(MyExcepTest.java:20)
Где "finally" может появиться до, после или между действиями NumberFormatException
.
Кто-нибудь может это объяснить?