Я разбираю файлы журналов сторонних разработчиков, содержащие дату/время, используя Joda. Дата/время находится в одном из двух разных форматов, в зависимости от возраста файлов журнала, которые я обрабатываю.
В настоящее время у меня есть код вроде этого:
try {
return DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss").parseDateTime(datePart);
} catch (IllegalArgumentException e) {
return DateTimeFormat.forPattern("E, MMM dd, yyyy HH:mm").parseDateTime(datePart);
}
Это работает, но противоречит совету Джошуа Блоха из Effective Java 2nd Edition (Пункт 57: Используйте исключения только для исключительных условий). Это также затрудняет определение того, происходит ли исключение IllegalArgumentException из-за закрученной даты/времени в файле журнала.
Можете ли вы предложить более хороший подход, который не злоупотребляет исключениями?