Gostaria de entender o motivo do meu código ao imprimir as informações do printStackTrace só aparece depois do fim do Main. Segue o meu algoritmo e abaixo o resultado após a compilação. public class Fluxo {
public static void main(String[] args) {
System.out.println("Ini do main");
try {
metodo1();
}catch(ArithmeticException | NullPointerException ex) {
String msg = ex.getMessage();
System.out.println("Exception " + msg);
ex.printStackTrace();
}
System.out.println("Fim do main");
}
private static void metodo1() {
System.out.println("Ini do metodo1");
metodo2();
System.out.println("Fim do metodo1");
}
private static void metodo2() {
System.out.println("Ini do metodo2");
for(int i = 1; i <= 5; i++) {
System.out.println(i);
int a = i / 0;
Conta c = null;
c.deposita();
}
System.out.println("Fim do metodo2");
}
}
Resultado
Ini do main
Ini do metodo1
Ini do metodo2
1
Exception null
Fim do main
java.lang.NullPointerException
at Fluxo.metodo2(Fluxo.java:27)
at Fluxo.metodo1(Fluxo.java:17)
at Fluxo.main(Fluxo.java:6)
Obs: se eu trocar o Exception a ser exibido o erro permanece.