Я аналізую файли журналів сторонніх розробників, що містять дату / час, за допомогою 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 через викривлену дату / час у файлі журналу.
Чи можете ви запропонувати більш приємний підхід, який не зловживає винятками?