程序错误无法在Argument和State异常之间做出决定?

时间:2014-01-31 03:44:28

标签: java exception-handling

我对整个异常业务有点新意,所以抛出异常是可怕的事情。 现在,我有一个方法“无法决定”什么是正确的抛出异常。我目前正在完成一项任务,但无法找出问题所在。

public void setEmail(String email) {
    if (email.contains("@flowerland.com")) {
        String[] tempEmail = email.split("@");
        String tempName = tempEmail[0];
        String name = tempName.substring(0, tempName.indexOf('.'));
        String surname = tempName.substring(tempName.indexOf('.')+1, tempName.length());
        String Name = name + " " + surname;
        if (Name.equalsIgnoreCase(this.name)) {
            this.email = name + "." + surname + "@flowerland.com";
        }
    } else {
        throw new IllegalArgumentException("E-mail does not match name.");
    }
}  

请原谅变量名,我改变了它们,因为它们最初不是英文,所以它们有点草率。

此方法的目的是检查字符串(电子邮件地址)并查看它是否等于当前对象的名称。
问题是,当我运行“test”代码时,它会告诉我如果IllegalArgumentException在代码中,则需要“IllegalStateException”,反之亦然。
这非常令人沮丧,我希望能够对这一切有所了解。

0 个答案:

没有答案