Использование Joda Date & Time API для анализа нескольких форматов
Я анализирую сторонние файлы журнала, содержащие дату / время, используя 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 из-за испорченной даты / времени в файле журнала.
Можете ли вы предложить более хороший подход, в котором не используются исключения?