java - 异常处理的意外输出

标签 java

你能告诉我我的代码有什么问题吗?它应该要求输入,直到输入的两个输入都是整数

public static void main(String[] args) {
    int a, b;
    Scanner input = new Scanner(System.in);
    int i = 0;

    while (i == 0) {
        try {

            System.out.print("Enter first number");
            a = input.nextInt();
            System.out.println("The number you entered is " + a);
            System.out.println("Enter second number");
            b = input.nextInt();
            System.out.println("The number you entered is " + b);

            i++;
        } catch (InputMismatchException e) {
            e.printStackTrace();
        }
    }
    System.out.println("End");
}

最佳答案

如果输入了无效的整数,该内容将保留在输入缓冲区中,并无限地传递到异常 block 。这些无效字符需要使用 next 来消耗或nextLinehasNextInt应该用于在调用 nextInt

之前检查整数是否实际可用

关于java - 异常处理的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651601/

相关文章:

java - 无法使用代理服务器通过 Java 登录 Salesforce

java - 绑定(bind)不匹配错误和java泛型方法

java - 在自定义转换器中如何访问 EJB bean

java - 有没有办法将Java代码编译成DLL?

Java 的 System.exit(0); vs C++ 返回 0;

java - GraphQL java 后端入门

java - 期待 NamingException,得到 NoSuchObjectException

java - 如何将字节数组转换为字符串数组而不进行任何转换

java - 如何在 J2ME 中实现 session 变量?

java - 如何防止使用 JPA 保存子对象?