Prezados, boa tarde.
Eu fiz um simples programinha para praticar manuseio de exceções.
Porém não consigo entender o por que dele estar Entrando em Loop Infinito quando alguem digita uma Letra.
import java.util.Scanner;
public class Perigo {
Scanner SS = new Scanner(System.in);
public void TestarPerigo(int S) throws Exception{
int Testar = this.SS.nextInt();
if (S == Testar){
System.out.println("O metodo rodou com sucesso, os numeros sao iguais.");
}
else{
System.out.println("O numero digitado nao eh igual");
}
}
}
public class Principal {
public static void main (String[] args) {
Perigo Danger = new Perigo();
System.out.println("Digite alguma coisa");
int ZZZ = 0;
while (ZZZ == 0 ){ //Para Fazer o Programa entrar em Loop enquanto o Bloco Try não for executado.
try{
Danger.TestarPerigo(10);
ZZZ = 1;
}
catch(Exception e){
System.out.println("Nao digite Letras seu Burro!!!");
System.out.println(e);
System.out.println("Digite novamente!");
}
}
System.out.println("Finalizando o programa.");
}
}
O que me parece que acontece, é que no looping o método SS.NextInt() não é executado dentro do Bloco Try depois da primeira vez.
Alguem pode me explicar? Por favor.
Desde já agradeço,
Boa semana para todo mundo.