这段代码应该从用户那里得到一个整数,然后完成程序。如果用户输入了一个无效的号码,它会再次询问用户。
捕获异常后,它用于Scanner.reset()
重置扫描仪,但它不起作用。它会重新抛出以前的异常。
Scanner in = new Scanner(System.in);
while (true) {
try {
System.out.print("Enter an integer number: ");
long i = in.nextLong();
System.out.print("Thanks, you entered: ");
System.out.println(i);
break;
} catch (InputMismatchException ex) {
System.out.println("Error in your input");
in.reset(); // <----------------------------- [The reset is here]
}
}
我以为Scanner.reset()
会重置一切并忘记异常。我在向用户询问新输入之前将其放入。
如果我理解错误,那么正确的方法是什么?