Usando a API Joda Date & Time para analisar vários formatos

Estou analisando arquivos de log de terceiros que contêm data / hora usando o Joda. A data / hora está em um de dois formatos diferentes, dependendo da idade dos arquivos de log que estou analisando.

Atualmente eu tenho código como este:

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);
}

Isso funciona, mas contraria o conselho de Joshua Bloch da Effective Java 2nd Edition (Item 57: Use exceções apenas para condições excepcionais). Também torna difícil determinar se ocorre uma IllegalArgumentException devido a uma data / hora incorreta em um arquivo de log.

Você pode sugerir uma abordagem mais agradável que não use exceções?

questionAnswers(3)

yourAnswerToTheQuestion