Notei algo estranho durante a explicação do conceito de exceptions nesse trecho de código :
static void m1() {
System.out.println("Inicio do m1");
try {
m2();
} catch (ArrayIndexOutOfBoundsException e) {
e = new ArrayIndexOutOfBoundsException("deu erro ");
System.out.println("ERRO: " + e);
}
System.out.println("fim do m1");
}
static void m2() {
System.out.println("Inicio do m2");
int[] array = new int[10];
for (int i = 0; i < 15; i++) {
array[i] = i;
System.out.println(i);
}
System.out.println("fim do m2");
}
Como vai dar erro de ArrayIndexOutOfBoundsException no metódo m2 ele deveria dar erro sem executa o sysout de "fim do m2" certo ? Na explicação mostra esse trecho sendo impresso o que deixa confuso.