0

新程序员在这里。

只是一个简单的问题 - 正如标题中已经提到的:

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

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

我实际上如何使它在程序本身内输出错误消息?

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

4

5 回答 5

3

你必须把你的解析放在一个try-catch语句中:

try {
    int number = Integer.parseInt(yourString);

} catch (NumberFormatException ex) {
    System.out.println("Not a valid number!");
}
于 2013-06-24T14:43:47.450 回答
2

您描述的消息是由您的程序未处理的异常(教程)引起的。

您可以使用 try-catch 构造处理此类异常。

try
{
    // Getting a number from input
}
catch(InputMismatchException ex)
{
    // do something to recover.
}

作为旁注 - Java 运行时抛出异常,而不是编译器。

于 2013-06-24T14:42:25.490 回答
0

您可以尝试将输入解析为数字并捕获NumberFormatException. 考虑使用Integer.valueOf(String). NumberFormatException如果输入不是有效的整数,这将抛出一个。您可以catch使用try-catch块来处理此异常。

于 2013-06-24T14:41:51.653 回答
0

isNumeric您可以使用类中的方法检查输入NumericUtils。该类来自org.apache.commons.lang.math包。

你可以看看java文档

如果此方法返回false,则显示相应的错误。

于 2013-06-24T14:41:53.840 回答
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");
}
于 2013-06-24T14:43:49.530 回答