try / catch с InputMismatchException создает бесконечный цикл

Так что я'Я строю программу, которая берет целые числа из пользовательского ввода. У меня есть очень простой блок try / catch, который, если пользователь этого не делаетt введите int, следует повторить блок, пока они не сделают. Вот'Соответствующая часть кода:

import java.util.InputMismatchException;
import java.util.Scanner;


public class Except {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        boolean bError = true;
        int n1 = 0, n2 = 0, nQuotient = 0;

        do {
            try {
                System.out.println("Enter first num: ");
                n1 = input.nextInt();
                System.out.println("Enter second num: ");
                n2 = input.nextInt();
                nQuotient = n1/n2;
                bError = false;
            } 
            catch (Exception e) {
                System.out.println("Error!");
            }
        } while (bError);

        System.out.printf("%d/%d = %d",n1,n2, nQuotient);
    }
}

Если я введу 0 для второго целого числа, то try / catch делает именно то, что нужноПредполагается, и заставляет меня положить его снова. Но если у меня есть InputMismatchException, например, при вводе 5.5 для одного из чисел, оно просто показывает мое сообщение об ошибке в бесконечном цикле. Почему это происходит, и что я могу с этим поделать? (Кстати, я попытался явно ввести InputMismatchException в качестве аргумента для перехвата, но это нерешить проблему.

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

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