Единственная часть вашего кода, которая может вызвать исключение, - это вызов:
scan.nextInt();
Согласно JavaDocs, это может выдать следующие возможные исключения:
- InputMismatchException (если следующий
токен не соответствует целому
регулярное выражение или вне
диапазон)
- NoSuchElementException (если
вход исчерпан)
- IllegalStateException (если это
сканер закрыт) * 1011 *
Так что, если вы хотите, чтобы ваш код учитывал возможности создания этих исключений, вы должны переписать его так:
try {
choice = scan.nextInt();
}
catch (InputMismatchException e) {
System.out.println(e.getMessage());
}
catch (NoSuchElementException e) {
System.out.println(e.getMessage());
}
catch (IllegalStateException e) {
System.out.println(e.getMessage());
}
Как правило, вы хотите, чтобы ваши блоки "улова" начинались специфично или, скорее всего, имели бы менее вероятный / более общий характер.
Вы можете дополнительно «выбросить» исключения, чтобы любой метод, в котором происходит исключение, не обрабатывал его - метод, вызвавший этот вызывающий исключение метод, должен был бы обрабатывать его (или вызывать его снова и т. Д., Пока он не будет обработан). попадает в среду выполнения Java).
В случае, если вы хотите заменить оператор if, я бы порекомендовал оператор switch:
switch (choice) {
case 1: N95.loadDeduct(load);
break;
case 2: N95.loadDeduct(load, greet);
break;
default: System.out.println("Invalid Option!!!");
}