Вы можете предотвратить выброс Scanner
InputMismatchException
, используя hasNextInt()
:
if (input.hasNextInt()) {
level = input.nextInt();
...
}
Это часто забываемый факт: вы всегда можете предотвратить a Scanner
от броска InputMismatchException
на nextXXX()
, предварительно убедившись в hasNextXXX()
.
Но чтобы ответить на ваш вопрос, да, вы можете вызвать main(String[])
, как и любой другой метод.
Смотри также
Примечание : чтобы использовать hasNextXXX()
в цикле, необходимо пропустить ввод «мусора», который заставляет его возвращать false
. Вы можете сделать это, скажем, позвонив и сбросив nextLine()
.
Scanner sc = new Scanner(System.in);
while (!sc.hasNextInt()) {
System.out.println("int, please!");
sc.nextLine(); // discard!
}
int i = sc.nextInt(); // guaranteed not to throw InputMismatchException