Я работаю над программой, в которой пользователь может добавлять людей и транспортные средства.Программа функционирует в соответствии с требованиями назначения scholl, однако я хочу, чтобы она работала еще лучше, обрабатывая исключения, если пользователь вводит недопустимое утверждение.
У меня есть это, и оно работает, если пользователя поставитьвернуться в меню программы, чтобы программа не аварийно завершала работу, но я не хочу, чтобы пользователь заново запускал процесс добавления объекта, а скорее повторил попытку с того места, где произошла ошибка.
Вот код:
// adds person to registry
public void addPerson(){
try {
System.out.println("Name of person: ");
String name = Main.sc.nextLine();
System.out.println("Age of person: ");
int age = Main.sc.nextInt();
Main.sc.nextLine();
System.out.println("City of residence: ");
String city = Main.sc.nextLine();
Person person = new Person(name, age, city);
personList.add(person);
}catch (InputMismatchException e){
System.out.println("Not a valid input. Try again");
Main.sc.nextLine();
}
}
Ошибка произойдет, если пользователь введет в вопросе «Введите возраст:» что угодно, кроме целых чисел.
У меня есть другой способ добавленияТранспортные средства, требующие гораздо большего количества пользовательского ввода, и, в частности, в этом методе было бы очень плохо, если бы пользователю пришлось начинать все сначала.
Как это исправить?