Mam problem z poniższym kodem. Próbuję zapętlić try catch tak, aby po wpisaniu złych danych wszystko powtarzało się w pętli. I myślałem, że sprawdzi się ** .next();**. Problem pojawia się jednak, gdy użytkownik wpisze np."aa 3d sf " <-- wtedy pętla przeskakuje automatycznie 3 razy. Albo, jeśli wprowadzi "we wefg 32", to wtedy w 3 przebiegu (automatycznym) wczyta ostatnią wartość, ponieważ jest tam liczba i uzna, że został podany wiek. Co powinienem zrobić, żeby usunąć powyższe problemy.
public void setAge(){
Scanner scanX = new Scanner(System.in);
int setAge;
boolean newError = false;
do {
System.out.println("Set Age: ");
try {
setAge = scanX.nextInt();
this.age = setAge;
newError = true;
} catch (RuntimeException e) {
System.out.println("Wrong input data. You have to write your age using digits only");
scanX.next();
}
} while(!newError);
}