Ten fragment kodu ma uzyskać liczbę całkowitą od użytkownika, a następnie zakończyć program. Jeśli użytkownik wprowadzi nieprawidłowy numer, ponownie pyta użytkownika.Scanner.reset() nie działa
Po wybraniu wyjątku używa Scanner.reset()
do resetowania skanera, ale nie działa. i ponownie rzuca poprzedni wyjątek.
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]
}
}
Myślałem Scanner.reset()
kasuje wszystko i zapomnieć o wyjątek. Położyłem to przed pytaniem użytkownika o nowe wejście.
Jeśli źle zrozumiałem, jaka jest właściwa droga?
Co sądzisz 'Scanner.reset()' robi? Przeczytaj dokumentację API dla tej metody. – Jesper
Co próbujesz zrobić z 'reset()'? Czy próbujesz ponownie poprosić o dane wejściowe użytkownika? Nie to robi 'reset()'. –