Я пытаюсь поймать InputMismatchException
, он работает при первом преломлении, но когда метод menu()
вызывается снова, он начинает цикл, пока он не застрянет в ошибке.Java try catch (InputMismatchException) неожиданный цикл
В try catch
моей целью было получить сообщение об ошибке, а затем снова запустить метод menu()
.
У меня есть следующий код:
public class Menu extends ProfilesManager {
static Scanner sc = new Scanner(System.in);
public static void menu() {
int number;
System.out.println("** Welcome... **\n ");
System.out.println("* what you wanna do?:\n");
System.out.println("(1) Login \n(2) Register \n(3) Find User \n(4) Exit\n");
System.out.print("-Answer?: ");
try {
number = sc.nextInt();
if (number == 1) {
Login();
} else if (number == 2) {
Register();
} else if (number == 3) {
FindUser();
} else if (number== 4) {
Exit();
}
} catch (InputMismatchException e) {
System.out.println("Error , only numbers!!");
menu();
}
}
}
}
Что такое 'menuPrinc();'? Если вы хотите что-то перезапустить, используйте фактический цикл, а не рекурсию. –
. Мне кажется, вам просто нужно вызвать 'menu()' в блоке 'catch' – Yazan
menuPrinc() - метод menu(), я забыл исправить его, Прости! –