В приведенном ниже коде Исключение возникает во внутреннем блоке перехвата, поэтому в идеале оно должно быть перехвачено внешним блоком перехвата, что должно привести к нормальному выполнению.
Но когда я выполнил, он не перехватывается во внешнем блоке перехвата, все еще выполняется нормально без какой-либо трассировки стека.
Я сомневаюсь, что если он выполнялся нормально (без трассировки стека), то он должен быть перехвачен внешним перехватчиком (должно было быть напечатано «10»)
Код:
public class Test2 {
public static void main(String[] args) {
try {
System.out.println("1");
System.out.println("2");
System.out.println("3");
try {
System.out.println("4");
System.out.println("5");
System.out.println("6");
}
catch(NullPointerException e)
{
int x=1/0;
}
finally
{
System.out.println("8");
}
System.out.println("9");
}
catch(ArithmeticException e)
{
System.out.println("10");
}
finally
{
System.out.println("11");
}
System.out.println("12");
}
}
Выход:
1
2
3
4
5
6
8
9
11
12