Infinite While Loop, когда InputMidmatchException перехватывается в блоке try-catch [duplicate]
На этот вопрос уже есть ответ:
try / catch с InputMismatchException создает бесконечный цикл 7 ответовЯ продолжаю получать мой код в бесконечном цикле while.
Это ничего не значит для продвинутых, но я не могу понять это для моей жизни!
Кто-то, пожалуйста, помогите
Я просто заново создал конкретную ошибку без всех операторов if, которые у меня есть в моей реальной программе.
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;
}
}
}
}
Бесконечный цикл происходит при обнаружении исключения несоответствия входных данных. Я бы подумал, что по крайней мере он попросит пользователя повторно ввести свои данные, но вместо этого он просто продолжит цикл, как показано ниже:
run:
Enter Something
df
What the f***?
Enter Something
What the f***?
Enter Something
What the f***?
Он действует так, будто просто игнорирует объект сканера sc?!