我对整个异常业务有点新意,所以抛出异常是可怕的事情。 现在,我有一个方法“无法决定”什么是正确的抛出异常。我目前正在完成一项任务,但无法找出问题所在。
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”,反之亦然。
这非常令人沮丧,我希望能够对这一切有所了解。