如何区分数据输入是(a)无效日期还是(b)无效格式?
我有以下代码用于处理来自文本文件的日期输入。
public boolean dateIsValid(String date) {
DateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
formatter.setLenient(false);
try {
Date dateParsed = (Date) formatter.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return false;
}
我的一切都按我的意愿工作。我唯一的问题是我无法区分抛出的不同解析异常。例如:
如果字符串日期 = 18/10/2012 -->java.text.ParseException: Unparseable date: "18/10/2012"
如果字符串日期 = 2-12-2001 -->java.text.ParseException: Unparseable date: "2-12-2001"
如您所见,两种错误的格式都会引发相同的错误。我怎样才能区分它们以便我可以以不同的方式处理它们?
编辑
更准确地说,在日期 18/10/2012 的情况下,我应该抛出一个无效的日期错误,而在日期 2-12-2001 的情况下,我需要抛出一个无效的格式异常。我不需要处理不同的格式。我只需要一种为这两种不同情况获取不同异常的方法。