gpt4 book ai didi

Java Scanner异常处理

转载 作者:行者123 更新时间:2023-12-04 22:04:45 26 4
gpt4 key购买 nike

我想从用户那里接收一个 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() 不消耗无效 token 。因此,导致异常的任何标记都将保留在那里,并在您下次尝试读取 double 时继续引发异常。

这可以通过在 nextLine() 块中放置 next()catch 调用来解决,以消耗导致抛出异常的任何输入,清除输入流并允许用户再次输入内容。

关于Java Scanner异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24414299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com