Java - 如何用其他东西替换“java.util.InputMismatchException”错误

时间:2014-03-31 02:01:44

标签: java replace inputmismatchexception

如何使“java.util.InputMismatchException”无法显示?

例如:

import java.util.Scanner;

class Test {
  public static void main(String args[]){

    Scanner input = new Scanner(System.in);
    int number;

    System.out.print("Type a number: ");
    number = input.nextInt();
    System.out.println(number);

    input.close();
  }
}

当你输入一个有效的int,例如“5”时它工作正常,但是当用户输入一个无效的int,比如“5.1”或“a”时,它会在线程中给出错误 Exception“main “java.util.InputMismatchException 。如果用户输入无效的int,有没有办法绕过错误并显示/执行其他操作?

像这样:

Type in a number: a
That is not a valid number. Try again

2 个答案:

答案 0 :(得分:1)

首先,您可以捕获异常并执行您想要的操作。

更好的方法是使用Scanner.hasNextInt()来测试行用户输入是否为int。

System.out.println("Type a number");
while(!input.hasNextInt()) {
    input.nextLine();
    System.out.println("That is not a valid number. Try again");
}
number = input.nextInt();

答案 1 :(得分:0)

number = input.nextInt();

上面的行读取整数。异常意味着您正在输入其他内容(例如String,double)

注意:如果您想阅读任何数字,请将该行替换为:

number = input.nextDouble();