使用InputMismatchException尝试/ catch创建无限循环
所以我正在构建一个从用户输入中获取内容的程序。我有一个看起来非常简单的try / catch块,如果用户没有输入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作为catch的参数,但它没有解决问题。
心有法竹
慕妹3146593
相关分类