do {
try {
System.out.print("Please enter the hour:");
hour = consoleScanner.nextInt();
if (hour < 1 || hour > 12) {
throw new InvalidHourException();
}
System.out.print("Please enter the minute:");
minute = consoleScanner.nextInt();
if (minute < 0 || minute > 59) {
throw new InvalidMinuteException();
}
if (minute <= 9)
zero = "0";
System.out.print("Please enter either \"AM\" or \"PM\":");
meridiem = consoleScanner.next();
if (!(meridiem.equalsIgnoreCase("AM"))
&& !(meridiem.equalsIgnoreCase("PM"))) {
throw new InvalidMeridiemException();
}
} catch (InvalidHourException hourEx) {
System.out.println(hourEx.getMessage());
consoleScanner.nextLine();
errorOccured = true;
} catch (InvalidMinuteException minuteEx) {
System.out.println(minuteEx.getMessage());
consoleScanner.nextLine();
errorOccured = true;
} catch (InvalidMeridiemException meriEx) {
System.out.println(meriEx.getMessage());
consoleScanner.nextLine();
errorOccured = true;
}
} while (errorOccured);
System.out.println(hour + ":" + zero + minute + meridiem + " is a valid time.");
consoleScanner.close();
}
}
это мой do while цикл. Выход:Почему мой код продолжает повторяться после возникновения исключения?
Please enter the hour:8
Please enter the minute:60
Please enter a minute between 1 to 60
Please enter the hour:
почему это отпрыгнуть в час вместо минуты? Что-то не так в заявлениях об уловах?
«Почему он возвращается в час вместо минут?» Вы имеете в виду переход на бит обработки исключений Hour? Может быть, отлаживать его? – TungstenX
hey @QuakeCore, мне было интересно, почему; должен быть удален? Это дает мне синтаксическую ошибку при ее удалении. Благодаря! – elequang
@elequang мой плохо его не удалять – QuakeCore