Java 尝试捕获用户输入

Java 尝试捕获用户输入,java,try-catch,user-input,Java,Try Catch,User Input,我试图创建一个try-catch语句,当用户输入一个小于0的数字时捕获,然后在用户输入一个字符/字符串时捕获,因为我希望用户输入一个int try { System.out.print("How many square feet are on your lot? (Enter 0 to quit): "); userSquareFeet = scnr.nextInt(); if (userSquareFeet < 0) { throw new Ex

我试图创建一个try-catch语句,当用户输入一个小于0的数字时捕获,然后在用户输入一个字符/字符串时捕获,因为我希望用户输入一个int

try {
    System.out.print("How many square feet are on your lot? (Enter 0 to quit): ");
    userSquareFeet = scnr.nextInt();

    if (userSquareFeet < 0) {
        throw new Exception("You can't have a negative value");
    }
} catch (InputMismatchException e) {
    System.out.println("You can not enter a character(s).");
} catch (Exception e) {
    System.out.println(e.getMessage());
}
试试看{
System.out.print(“您的地块上有多少平方英尺?(输入0退出):”;
usersquarefeets=scnr.nextInt();
如果(用户平方英尺<0){
抛出新异常(“不能有负值”);
}
}捕获(输入不匹配异常e){
System.out.println(“您不能输入字符”);
}捕获(例外e){
System.out.println(e.getMessage());
}
当我输入一个char/字符串时,出于某种原因,它只会启动一个无限循环。非常感谢您的帮助,很抱歉这个简单的问题,在我看来,Zybooks.com在这一部分做得不好。

当您使用nextInt()方法时,程序实际上会进入一个循环,直到输入真的是一个整数。 您的程序输入本身已经存在类型限制

可能重复的