相关疑难解决方法(0)

使用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);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我为第二个整数输入0,那么try/catch就会完全按照预期进行操作并让我再次输入它.但是,如果我有一个InputMismatchException,比如为其中一个数字输入5.5,它只是在无限循环中显示我的错误信息.为什么会发生这种情况,我该怎么办呢?(顺便说一句,我已经尝试显式输入InputMismatchException作为catch的参数,但它没有解决问题.

java exception

21
推荐指数
1
解决办法
9万
查看次数

标签 统计

exception ×1

java ×1