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

Por que o Nico criou a variável msg para imprimir o método getMessage();?

Ao fazer o catch o professor criou a referencia ex depois criou uma nova variável chamada msg que recebe o método getMessage de ex.

public static void main(String[] args) {
    System.out.println("Ini do main");
    try {
        metodo1();
    } catch(ArithmeticException ex) {
        String msg = ex.getMessage();
        System.out.println("ArithmeticException " + msg);
    }
    System.out.println("Fim do main");
}

Minha dúvida é, o código funcionaria apenas se mandasse imprimir com o ex direto sem a variável msg, certo? O código ficaria assim:

public static void main(String[] args) {
    System.out.println("Ini do main");
    try {
        metodo1();
    } catch(ArithmeticException ex) {
    System.out.println("ArithmeticException " + ex.getMessage());
    }
    System.out.println("Fim do main");
}

Por que foi criada a variada msg?

Desde já obrigado.

2 respostas
solução!

Bom dia Zenildo!

O resultado é o mesmo. O professor Nico fez dessa maneira para ser mais didático. Note que o próprio método getMessage() retorna uma String.

Espero ter ajudado.

Bom dia Daniel, obrigado pela resposta. Talvez por estar engatinhando no java, honestamente não consigo entender como isso deixa o código mais didático. Na minha perspectiva, foi uma linha a mais de código que tive que interpretar. Mas enquanto escrevo isso, chego a conclusão que foi bom porque me ajudou a praticar interpretação, a ver novamente um método lançado em uma variável.

**Editando texto original, acho que entendi o objetivo, ele ficou mais didático porque a palavra msg é associada com mensagem, então seria mais fácil para entendermos que era para exibir uma mensagem na linha

Agradeço a disposição em ajudar. Um abraço.