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

回到顶部