Java-如何替换;java.util.InputMismatchException“;错在别的东西上

Java-如何替换;java.util.InputMismatchException“;错在别的东西上,java,replace,inputmismatchexception,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.

如何使“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”)时,它将在线程“main”java.util.InputMismatchException中给出错误异常。如果用户键入无效的int,是否有办法绕过错误并显示/执行其他操作

像这样:

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

首先,您可以捕获异常并执行所需的操作

更好的方法是使用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();
上面的一行是一个整数。异常表示您输入的内容是其他内容(例如字符串、双精度)

注意:如果要读取任何数字,请将该行替换为:

number = input.nextDouble();

首先看一下扫描器的javadoc。我想你想要的是捕捉例外
number = input.nextDouble();