繁体   English   中英

即使不符合条件,也要保持抛出异常

[英]Keeps throwing Exception even if it doesn't meet the condition

这可能是一个非常棒的问题,但我想我会抓住机会。

所以基本上我必须做一个任务,它如下:

我必须创建一个构造函数,但变量“naam”不能为null或为空(“”),变量“geboortedatum”不能在将来也不能与今天和最后一个变量相同“ boeken“与变量”naam“具有相同的要求(因为它不能为null也不能为”“)。

所以这就是我的构造函数的样子,我只能编辑这部分,因为另一部分是由我们的老师给出的,不能编辑。

        if (this.naam == null || this.naam.equals("")) {
        throw new IllegalArgumentException("Fill in name");
    } else {
        this.naam = naam;
    }
    Date vandaag = new Date();
    if (this.geboorteDatum >= vandaag.getTime()) {
        throw new IllegalArgumentException("Date must be in the past");
    } else {
        this.geboorteDatum = geboortedatum;
    }
    if (this.boeken == null || Arrays.toString(boeken).equals("")) {
        throw new IllegalArgumentException("Can't be empty");
    } else {
        this.boeken = boeken;
    }  

它不断抛出我的第一个例外,我无法弄清楚为什么。 这可能是一个非常愚蠢的问题,但我似乎无法找出原因。

任何帮助将非常感谢,提前感谢

您正在测试this.naam ,它是该类的实例数据成员。 如果这是在你所说的构造函数中,那么除非你有一个初始化器,否则它可能是null

你可能想要测试naam ,构造函数的参数:

if (naam == null || naam.equals("")) {
//  ^---------------^------------------ no `this.` here
    throw new IllegalArgumentException("Fill in name");
} else {
    this.naam = naam;
}

同样对于geboortedatumboeken

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM