Java Scanner异常处理
我想从用户那里接收Double并处理抛出的异常,以防用户未输入double /
int;在这种情况下,我想请用户再次输入金额。如果捕获到异常,我的代码将陷入循环,并继续打印“插入量”。
private static double inputAmount() { Scanner input = new Scanner(System.in);
while (true) {
System.out.println("Insert amount:");
try {
double amount = input.nextDouble();
return amount;
}catch (java.util.InputMismatchException e) {continue;}
}
}
先感谢您。
回答:
你的程序进入时遇到一个无效的输入,因为一个无限循环,nextDouble()
并 没有
消耗无效令牌。因此,导致该异常的任何标记都将保留在那里,并在下次您尝试读取double时继续引发异常。
这可以通过以下方式解决:将a
nextLine()
或next()
call放在该catch
块内,以消耗导致引发异常的任何输入,清除输入流,并允许用户再次输入某些内容。
以上是 Java Scanner异常处理 的全部内容, 来源链接: utcz.com/qa/422523.html