我在一个名为dataRange
的变量中存储了一个字符串,并使用Interval.parse()
方法获取了一个Interval对象。
我的目标是检查该字符串是否格式正确,如果格式不正确则抛出DateFormatExeption
。
final Interval validDateRange = Interval.parse(dateRange);
如果字符串格式正确,则Parse函数似乎不会抛出任何异常。
如何解决这个问题?
答案 0 :(得分:1)
Interval.parse()
不会抛出DateFormatException
。相反,它会抛出一个IllegalArgumentException
。 DateFormatException
不是Java或JodaTime内置的异常类,因此您需要自己创建它(这非常简单)
如果你想抛出DateFormatException
,那么可以在try块中包含调用并执行此操作:
final Interval validDateRange = null
try{
validDateRange = Interval.parse(dateRange);
catch(InvalidArgumentException e){
throw new DateFormatException("date format not valid",e);
}
但如果字符串为null,如果日期格式正确但范围错误(例如结束日期在开始之前),则也会抛出InvalidArgumentException
。异常消息将告诉您出了什么问题,但在所有这些情况下抛出DateFormatException
可能不正确