このコードは、ユーザーから整数を取得してプログラムを終了することになっています。ユーザーが無効な番号を入力すると、ユーザーに再度尋ねます。
例外をキャッチした後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()
すべてをリセットして例外を忘れると思いました。ユーザーに新しい入力を求める前にそれを置きます。
私がポイントを間違えた場合、正しい方法は何ですか?