我正在使用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);
}
这有效,但违反了有效Java 2nd Edition中Joshua Bloch的建议(条款57:仅在特殊情况下使用例外)。由于日志文件中错误的日期/时间,这也使得很难确定是否发生IllegalArgumentException。
您能提出一种不会滥用异常的更好的方法吗?