设计:如何使用Scanner处理非法控制台输入?

时间:2011-10-03 19:46:03

标签: java exception-handling

从设计的角度来看,处理程序员定义的用户的非法输入的最佳方法是什么。

Ex:我要求用户输入数量,但他输入“fewfiejfjw”。

我应该制作自定义例外吗?在这种情况下是否会抛出一个普遍接受的例外情况?或者我应该说

if(!in.next().matches("\b\d+\b"){
System.out.print("Try again");
//..code to repeat method goes here
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

Scanner有一类方法用于检查下一个标记是否是有效整数等。例如,请参阅hasNextInt()。在致电nextInt()等之前调用此方法。

处理无效输入的最佳方法实际上取决于您的应用程序。我想要求用户再次输入值是不合理的(当然,跳过了无效的令牌,这样你就不会创建无限循环)。

答案 1 :(得分:1)

我认为你不应该抛出异常。您应该处理输入并显示错误并要求用户再试一次。没理由停止申请。