Java日期例外处理的试图抓住
-
22-09-2019 - |
题
是有某种异常在Java赶上无效的日期对象?我试图使用它以下面的方法,但是我不知道是什么类型的例外寻找。它是一个如果.
public boolean setDate(Date date) {
this.date = date;
return true;
}
解决方案
在方法提供,也没有办法抓住一个例外,因为没有人会被扔通过简单的任务。你所能做的也许是以下变化:
if(date == null) return false;
但是,即使这是不优雅。你可能想要做的事情与 this.date
或投掷的一个例外,如果这就是所需要的行为。
什么您真正地正在寻求的是:
ParseException
-扔一个DateFormat
对象时它的企图parse()
, 这将发生在你设法IllegalArgumentException
-扔一个SimpleDateFormat
构造,这又会发生在你设置的方法。指示提供一个无效的格式串。
你想要抓住那些(可能#1).但它发生了 之前 你的方法的呼吁。一旦你有一个 Date
目的,它是 null
或有效的。
其他提示
这可能不是与原来的问题。但是你一定要注意方法的名称,这是setDate()
。你觉得它听起来像它会返回些什么呢?或者,如果它可以,那么你认为它是一个好主意,返回boolean
呢? IMO,做这样的事情,
public void setDate(Date date) {
this.date = date;
}
public boolean isDateNull() { // or something
return this.date == null;
}
在该方法中,没有必要担心异常。日期已经被你进入此方法时创建的。如果你正在分析的日期,这将有此代码的以外进行。你可以做的就是最好的确定日期不为null。
这取决于你的意思是无效的日期是什么。你的意思是让我们看起来更像是这个方法的签名?
public void setDate(String date) throws ParseException {
this.date = SomeDateFormat.getInstance().format(date);
}
否则,别人说,因为它是任何日期的实例已经或null指定Java日期对象的场的简单的行为不应该例外。
如果你只是想将一个字符串解析成java.util.Date,看的日期格式,FastDateFormat(Apache的,线程安全),或约达时间。
不隶属于 StackOverflow