Infinite While Loop Cuando InputMidmatchException está atrapado en el bloque try-catch [duplicado]
Esta pregunta ya tiene una respuesta aquí:
try / catch con InputMismatchException crea un bucle infinito 7 respuestasSigo obteniendo mi código atrapado en un bucle while infinito.
No es nada avanzado, pero no puedo resolverlo por la vida!
Alguien por favor ayuda
Por supuesto, acabo de volver a crear el error específico sin todas las declaraciones if que tengo en mi programa real.
package bs;
import java.util.InputMismatchException;
import java.util.Scanner;
public class bs {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean continueVar = true;
while (continueVar) {
try {
System.out.println("Enter Something");
int input = sc.nextInt();
} catch (InputMismatchException i) {
System.out.println("What the f***?");
continueVar = true;
}
}
}
}
El bucle infinito ocurre cuando se detecta la excepción de desajuste de entrada. Creo que al menos le pediría al usuario que vuelva a ingresar su entrada, pero en lugar de hacerlo, simplemente continúa en el ciclo como sigue:
run:
Enter Something
df
What the f***?
Enter Something
What the f***?
Enter Something
What the f***?
¡Actúa como si solo estuviera ignorando el objeto de escáner sc?!