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?!

Ответы на вопрос(4)

Ваш ответ на вопрос