Jodaを使用して日付/時刻を含むサードパーティのログファイルを解析しています。日付/時刻は、解析しているログファイルの経過時間に応じて、2つの異なる形式のいずれかになります。
現在、私は次のようなコードを持っています:
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 2ndEditionからのJoshuaBlochのアドバイスに違反します(項目57:例外を例外条件にのみ使用します)。また、ログファイルの日付/時刻がめちゃくちゃになっているためにIllegalArgumentExceptionが発生したかどうかを判断するのが難しくなります。
例外を誤用しない、より良いアプローチを提案できますか?