新程序员在这里。
只是一个简单的问题 - 正如标题中已经提到的:
如何为非数字输入输出错误消息?
例如,人员为 int 分类输入输入字母 - 编译器产生错误:“线程中的异常”main“java.util.InputMismatchException”
我实际上如何使它在程序本身内输出错误消息?
因为我希望程序继续循环以再次请求输入,直到满足指定的要求以退出程序。
新程序员在这里。
只是一个简单的问题 - 正如标题中已经提到的:
如何为非数字输入输出错误消息?
例如,人员为 int 分类输入输入字母 - 编译器产生错误:“线程中的异常”main“java.util.InputMismatchException”
我实际上如何使它在程序本身内输出错误消息?
因为我希望程序继续循环以再次请求输入,直到满足指定的要求以退出程序。
你必须把你的解析放在一个try-catch
语句中:
try {
int number = Integer.parseInt(yourString);
} catch (NumberFormatException ex) {
System.out.println("Not a valid number!");
}
您描述的消息是由您的程序未处理的异常(教程)引起的。
您可以使用 try-catch 构造处理此类异常。
try
{
// Getting a number from input
}
catch(InputMismatchException ex)
{
// do something to recover.
}
作为旁注 - Java 运行时抛出异常,而不是编译器。
您可以尝试将输入解析为数字并捕获NumberFormatException
. 考虑使用Integer.valueOf(String)
. NumberFormatException
如果输入不是有效的整数,这将抛出一个。您可以catch
使用try-catch块来处理此异常。
isNumeric
您可以使用类中的方法检查输入NumericUtils
。该类来自org.apache.commons.lang.math
包。
你可以看看java文档
如果此方法返回false
,则显示相应的错误。
您需要以编程方式进行。将您的可疑代码放在 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");
}