У меня есть приведенный ниже код java, он работает, если пользователь вводит дату указанного формата, например, 2011-11-11, но происходит сбой программы, когда пользователь вводит простой текст, например, «привет», «да». Код сравнивает дату ввода пользователя с текущей датой и выполняет действие. Как проверить, чтобы убедиться, что пользователь вводит дату, а не обычный текст, прежде чем программа сможет продолжить. Вот код:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println("Enter valid date e.g yyyy-mm-dd: ");
String date = sn.next();
LocalDate startDate = LocalDate.parse(date, formatter); //I don't want the program to accept 'startDate' as test, it should be date of specified förmat before jumping to try and catch.
LocalDateTime lt = LocalDateTime.now();
LocalDate currentDate = lt.toLocalDate(); // for type match, I removed time stamp from the localdatetime
try {
for (obj result : list) {
if (startDate.isBefore(currentDate)) {
System.out.println(result);
} else {
System.out.println("");
}
}
} catch (DateTimeException e) {
System.out.println ( "ERROR: " + e );
}