Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

ex.getMessage() do NullPointerException com resultado diferente

Quando o Nico fez o ex.getMessage no caso do Conta c = null, o retorno desse método foi apenas "null". No meu caso, está dando "Cannot invoke "Conta.deposita()" because "c" is null". Não sei o porquê dessa diferença.

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();
        }
    }

    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");
    }
}
2 respostas
solução!

Olá Alexandre, tudo bem com você?

Acredito que o pessoal do Java tenha atualizado a mensagem de erro para que ela fizesse mais sentido para quem está lendo. Diferente de um simples "null", agora temos uma mensagem que explica o porquê de ter dado um NullPointerException.

Perfeito, obrigado, Thiago.