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

Resposta de uma dúvida

Boa tarde Devs.

No primeiro post aqui, um colega colocou a imagem abaixo.

Imagem com um print da tela de desenvolvimento de código.

Na pergunta ele questiona porque de o código dele está mostrando um resultado diferente da aula, mas a resposta dada foi por causa da versão utilizada. Só que verificando melhor, observei que ele repete o método 2.

private static void metodo1(){
system.out.println("Ini do metodo1");

try{
      metodo2();
      } catch(ArithmeticException ex);{
             System.out.println("ArithmeticException");
      }

metodo2();
System.out.println("Fim do metodo2");

}

Penso que o erro é devido a isso, e para não deixar ninguém com dúvida resolvi postar.

Se estiver errado também me corrijam ... hehehehe.

2 respostas

Prezado, eu retirei o método acima citado e dá uma erro na hora de compilar. O que pra mim é normal, porque não é permitido dividir um número por zero.

Então, a aplicação lança uma exceção do tipo "ArithmeticException".

Ou seja, a mensagem mostrada é esperada mesmo pelo compilador.

Espero ter ajudado ! Abraço resultado_compiladorCodigo

solução!

A exceção está ok, a dúvida do colega foi porque o código dele estava dando resultado diferente iniciando o método 2 novamente, então a forma de resolver é só comentar as duas linhas conforme fiz abaixo.

public static void Metodo1(){
    System.out.println("Ini do método1");

        try{
              Metodo2();
           } catch(ArithmeticException ex){
                     System.out.println("ArithmeticException");
              }

        //Metodo2();
        //System.out.println("Fim do método2");

        }

Antes o resultado estava assim...

Ini do método 
Ini do método1
Ini do método 2 
1
ArithmeticException
Ini do método 2 
1
Exception in thread "main" java.lang.ArithmeticException: / by zero
    at PilhanovoErro.Metodo2(PilhanovoErro.java:27)
    at PilhanovoErro.Metodo1(PilhanovoErro.java:19)
    at PilhanovoErro.main(PilhanovoErro.java:6)

E o certo seria ...

Ini do método 
Ini do método1
Ini do método 2 
1
ArithmeticException
Fim do método.

É isso.. :)