Если пользователь вводит число, Scanner.nextLine() будет выдавать исключение NoSuchElementException на каждой итерации, создавая тем самым бесконечный цикл.
Код: Выделить всё
public class Console {
public int readInteger(String line) {
Integer x = null;
while(x == null) {
try(Scanner scanner = new Scanner(System.in) {
System.out.print(line);
x = scanner.nextInt();
} catch(InputMismatchException exc) {
//error message
} catch(InvalidStateException exc) {
//error message
} catch(NoSuchElementException exc) {
//error message
}
}
return x;
}
}
Изменить: понял, что моя проблема возникает в сочетании с методом Scanner.nextLine(). Порядок не имеет значения, мой цикл по-прежнему является бесконечным циклом с тем же исключением NoSuchElementException.
Подробнее здесь: https://stackoverflow.com/questions/697 ... dd-anomaly
Мобильная версия