0

我在变量中存储了一个字符串,dataRange并使用Interval.parse()方法来获取一个 Interval 对象。

我的目标是检查该字符串的格式是否正确,DateFormatExeption如果格式不正确则抛出。

final Interval validDateRange = Interval.parse(dateRange);

如果字符串格式正确,解析函数似乎不会引发任何异常。

如何解决这个问题?

4

1 回答 1

1

Interval.parse()DateFormatException如果提供的字符串无效,则不会抛出 a 。相反,它会抛出一个IllegalArgumentException. DateFormatException不是 Java 或 JodaTime 内置的异常类,因此您需要自己创建它(这很容易)

如果你想抛出一个DateFormatExceptionthen 可以将调用包装在一个 try 块中并执行以下操作:

final Interval validDateRange = null
try{
    validDateRange = Interval.parse(dateRange);
catch(InvalidArgumentException e){
    throw new DateFormatException("date format not valid",e);
}

InvalidArgumentException如果字符串为空,如果日期格式正确但范围错误(例如结束日期在开始之前),也会被抛出。DateFormatException异常消息会告诉您出了什么问题,但在所有这些情况下都抛出 a 可能不正确

于 2013-01-14T17:52:47.603 回答