Olá, no meu console o rastro aparece depois do "Fim do main", assim:
Ini do main Ini do metodo1 Ini do metodo2 Exceção Deu errado. MinhaExcecao: Deu errado. Fim do main at Fluxo.metodo2(Fluxo.java:26) at Fluxo.metodo1(Fluxo.java:19) at Fluxo.main(Fluxo.java:7)
Contudo, o "Fim do main" não deveria aparecer depois. Porque isso acontece?
public class Fluxo {
public static void main(String[] args) {
System.out.println("Ini do main");
try {
metodo1();
} catch(ArithmeticException | NullPointerException
| MinhaExcecao ex) {
String msg = ex.getMessage(); // mensagem original da exception
System.out.println("Exceção " + msg);
ex.printStackTrace(); // rastro da exception
}
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");
throw new MinhaExcecao("Deu errado.");
//System.out.println("Fim do metodo2");
}
}