Возврат из блока try-catch
Всем доброго времени суток! Имеется следующий код:
Scanner scanner = new Scanner(System.in);
String about = scanner.nextLine();
try {
if (about.equals("Справка") || about.equals("справка"))
System.out.println("Справка в разработке");
} catch (Exception i) {
if (!(about.equals("Справка") || about.equals("справка"))) {
throw new IllegalArgumentException("Для вызова \"Справки\" необходимо ввести в консоль \"Справка\"");
}
}
Тут я по введенному слову или выкидываю справку или нет.
Вопрос в следующем. Если пользователь ввел неверное слово и выкинулось сообщение об ошибке, как мне снова вернуться ко вводу в консоль и начать сначала?
Заранее благодарю!
Ответы (2 шт):
Автор решения: стасевич
→ Ссылка
while (!about.equalsIgnoreCase("справка")) {
about = scanner.nextLine();
//do something
}
Автор решения: Alex Rudenko
→ Ссылка
Строго говоря, в показанном коде исключение не должно возникать вообще, то есть, даже если пользователь не введёт слово "Справка", блок catch не отработает, и вся конструкция try-catch в данном примере представляется излишней.
Цикл ожидания "правильного" ввода может быть переписан так:
String about;
while (!"справка".equalsIgnoreCase(about = scanner.nextLine())) {
System.out.println("Для вызова справки введите в консоль: справка");
}
System.out.println("Справка в разработке");