public static Date strToDate(String dateStr, String dateFormat){
// if(dateStr == null || "".equals(dateStr))
//
// if(dateFormat == null || "".equals(dateFormat))
//
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Date date;
try {
date = sdf.parse(dateStr);
}
catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return date;
}
如上述代码,关于异常的出来有几个疑问
1. dateStr不合要求,是否抛出异常,不抛在date = sdf.parse(dateStr);也会捕获
2. dateFormat一样
3. catch 之后抛出异常跟返回null问题这个工具函数如果抛出异常,调用时都要try不太方便。针对java何时该抛出异常,是否是在无法预测的地方抛出异常,还是像dateStr可以判断的也抛出异常???
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Date date = null;//null
try {
date = sdf.parse(dateStr);
}
catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//return null;
}
return date;
2、假设用户试图打开一条记录,记录中包含一个格式不正确的日期字符串,那么这时候系统可以拒绝打开记录:“记录存在错误!”,也可以继续打开记录,并提示用户:“记录存在部分错误:开始日期格式不正确”。
3、假设用户试图导入数据到系统中,某条记录包含一个格式不正确的日期字符串,那么这时候系统可以取消导入,也可以忽略该条记录继续导入,完成后再给出结果:“第 X 行记录导入失败:日期格式不正确”。所以,很难说有什么统一的原则来处理楼主的这个方法,这都要根据具体的需要来决定。楼主可能需要对更高层的业务逻辑进行调整,以使其能够以合理的处理这个异常。返回 null 也不失为一种处理方式:当调用者收到 null 时,它就应该知道转换失败了。
2.也会
3,打出堆栈信息,并且返回的日期是null,也就是你没有成功的把date转换成string