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

Console diferente na execução e no debug

Olá. Fiquei com uma pequena dúvida deste exercício. Porque quando executo o código, no console não chega a imprimir o número 1 do for e no debug imprime?

Código

public class Fluxo {

    public static void main(String[] args) {
        System.out.println("Ini do main");
        metodo1();
        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");
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
            int a = i / 0;
        }
        System.out.println("Fim do metodo2");
    }
}

No eclipse quando executo o código, o console mostra assim:

Ini do main
Ini do metodo1
Ini do metodo2
Exception in thread "main" 1
java.lang.ArithmeticException: / by zero
    at Fluxo.metodo2(Fluxo.java:19)
    at Fluxo.metodo1(Fluxo.java:11)
    at Fluxo.main(Fluxo.java:5)

Ou seja, não chega a imprimir o 1, e já aparece o Exception, diferente do professor e no próprio debug mesmo.

2 respostas

boa tarde Kenni

Eu testei no meu eclipse e apareceu o "1" conforme o esperado neste código. No seu print aparece "1" também, só está depois da frase "Exception in thread "main" 1 <------aqui

Saida no console do meu eclipse:

Exception in thread "main" 
Ini do main
Ini do metodo1
Ini do metodo2
1
java.lang.ArithmeticException: / by zero
    at teste.Teste.metodo2(Teste.java:21)
    at teste.Teste.metodo1(Teste.java:13)
    at teste.Teste.main(Teste.java:7)
solução!

Opa. Então, pode notar que no meu não imprimia o 1, o que deveria acontecer antes de mostrar a exceção... Mas deve ser algum bug do Eclipse, porque apenas fechei ele e abri novamente e passou a mostrar corretamente. Obrigado pela resposta!