新程序员在这里。
只是一个简单的问题 - 如标题中所述:
如何输出非数字输入的错误消息?
例如,person输入一个int分类输入的字母 - 编译器产生一个错误:“线程中的异常”main“java.util.InputMismatchException”
如何让它在程序本身内输出错误信息?
因为我希望程序继续循环以再次请求输入,直到满足指定的要求才能退出程序。
答案 0 :(得分:3)
您必须将解析放在try-catch
语句中:
try {
int number = Integer.parseInt(yourString);
} catch (NumberFormatException ex) {
System.out.println("Not a valid number!");
}
答案 1 :(得分:2)
您所描述的消息是由您的程序未处理的例外 (tutorial)引起的。
您可以使用try-catch构造处理此类异常。
try
{
// Getting a number from input
}
catch(InputMismatchException ex)
{
// do something to recover.
}
作为旁注 - Java运行时抛出异常,而不是编译器抛出异常。
答案 2 :(得分:0)
您可以尝试将输入解析为数字并捕获NumberFormatException
。考虑使用Integer.valueOf(String)
。如果输入不是有效整数,则抛出NumberFormatException
。您可以使用try-catch阻止catch
此例外。
答案 3 :(得分:0)
您可以使用isNumeric
类中的NumericUtils
方法检查输入。该课程来自org.apache.commons.lang.math
包。
您可以查看java docs
如果此方法返回false
,则显示相应的错误。
答案 4 :(得分:0)
您需要以编程方式执行此操作。将您怀疑的代码放在try catch块下,以防万一打印/或抛出所需的错误消息。例如,如果要输入小于10的数字
,则要打印错误消息Scanner user_input = new Scanner( System.in );
int numberEntered=user_input.nextInt();
while(numberEntered<=10)
{
System.out.println("Please enter number greater than 10");
}