如何输出非数字输入的错误消息?

时间:2013-06-24 14:39:00

标签: java

新程序员在这里。

只是一个简单的问题 - 如标题中所述:

如何输出非数字输入的错误消息?

例如,person输入一个int分类输入的字母 - 编译器产生一个错误:“线程中的异常”main“java.util.InputMismatchException”

如何让它在程序本身内输出错误信息?

因为我希望程序继续循环以再次请求输入,直到满足指定的要求才能退出程序。

5 个答案:

答案 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");
}