Ich analysiere Protokolldateien von Drittanbietern, die Datum und Uhrzeit enthalten, mit Joda. Das Datum und die Uhrzeit liegen in einem von zwei verschiedenen Formaten vor, abhängig vom Alter der Protokolldateien, die ich analysiere.
Derzeit habe ich folgenden Code:
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);
}
Dies funktioniert, widerspricht jedoch Joshua Blochs Rat aus Effective Java 2nd Edition (Punkt 57: Verwenden Sie Ausnahmen nur für außergewöhnliche Bedingungen). Es ist auch schwierig festzustellen, ob eine IllegalArgumentException aufgrund eines fehlerhaften Datums / einer fehlerhaften Uhrzeit in einer Protokolldatei auftritt.
Können Sie einen schöneren Ansatz vorschlagen, der Ausnahmen nicht missbraucht?