Bom dia pessoal! Me surgiu a seguinte duvida: Coloquei o bloco try/catch bem em cima da exceção para ver o que aparece no printStackTrace. Eu achei que fosse aparecer somente a linha onde ocorreu a exceção, porem apareceu todos os métodos. Não era para aparecer somente uma linha, já que tratei a exceção dentro do próprio método onde ela ocorreu?
printStackTrace:
java.lang.NullPointerException: Cannot invoke "Conta.deposita()" because "joao" is null
at Fluxo.metodo2(Fluxo.java:29)
at Fluxo.metodo1(Fluxo.java:15)
at Fluxo.main(Fluxo.java:8)
O código:
public class Fluxo {
public static void main(String[] args) {
System.out.println("Inicio do metodo main");
metodo1();
System.out.println("Fim do metodo main");
}
private static void metodo1() {
System.out.println("Inicio do metodo1");
metodo2();
System.out.println("Fim do metodo1");
}
private static void metodo2() {
System.out.println("Inicio do metodo2");
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
try {
Conta joao = null;
joao.deposita();
// System.out.println(3 / 0);
} catch (ArithmeticException | NullPointerException ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
System.out.println("Fim do metodo2");
}
}
}