我正在使用 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 的 Joshua Bloch 的建议(第 57 条:仅在异常情况下使用异常)。这也使得很难确定 IllegalArgumentException 是否由于日志文件中的错误日期/时间而发生。
您能否建议一种不会滥用异常的更好方法?