是有某种异常在Java赶上无效的日期对象?我试图使用它以下面的方法,但是我不知道是什么类型的例外寻找。它是一个如果.

public boolean setDate(Date date) {
        this.date = date;                
        return true;
    }
有帮助吗?

解决方案

在方法提供,也没有办法抓住一个例外,因为没有人会被扔通过简单的任务。你所能做的也许是以下变化:

if(date == null) return false;

但是,即使这是不优雅。你可能想要做的事情与 this.date 或投掷的一个例外,如果这就是所需要的行为。

什么您真正地正在寻求的是:

  1. ParseException -扔一个 DateFormat 对象时它的企图 parse(), 这将发生在你设法
  2. 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的,线程安全),或约达时间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top