У меня есть класс Player, который содержит функцию, которая принимает целое число в качестве параметра.В моей основной функции, которая находится в другом классе под названием Game, у меня есть раздел, который принимает пользовательский ввод и передает его в функцию DoMove (int i) класса Player.В моем классе Game у меня есть это:
public static void main(String[] args)
{
Player p1 = new Player();
Scanner input = new Scanner(System.in);
int entry;
while(GameNotOver() == true)
{
do{
try
{
p1.DoMove(entry);
} catch (InputMismatchException e)
{
System.out.println("Bad choice!");
input.next();
}
} while (p1.DoMove(entry) == false);
}
}
По сути, основная функция передает параметр в другую функцию классов, которая прекрасно работает.Но этот параметр должен быть целым числом.Если я наберу кучу символов и нажму Enter, я получу следующее:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
Основной цикл GameNotOver работает нормально, и вся программа работает отлично, если я опускаю всю обработку исключений.И программа выходит.Я думаю, что не правильно ловлю исключение.Любые советы?