尝试/捕获输入不匹配异常创建无限循环
所以我正在构建一个程序,它从用户输入中获取int。我有一个似乎非常简单的尝试/捕获块,如果用户没有输入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会完全按照它应该做的事情,让我再次输入它。但是,如果我有一个输入不匹配异常,比如在其中一个数字中输入5.5,它只会在无限循环中显示我的错误消息。为什么会发生这种情况,我该怎么办?(顺便说一句,我尝试显式键入 InputMismatchException 作为要捕获的参数,但它没有解决问题。