Java 如果要添加的对象具有重复项,如何引发异常

Java 如果要添加的对象具有重复项,如何引发异常,java,Java,我必须向数组中添加新对象,但如果该对象已存在,则会引发异常。我不知道在“throw”之后添加什么。 我已经创建了object类,也创建了一个类来保存该对象的数组。我还完成了必须将其添加到数组中的部分,但是如果该对象已经存在于该数组中,我不知道要抛出什么异常 最简单的方法是抛出一个存在的异常。你可以这样做 throw new IllegalArgumentException(); 或者使用带字符串参数的构造函数 throw new IllegalArgumentException("The va

我必须向数组中添加新对象,但如果该对象已存在,则会引发异常。我不知道在“throw”之后添加什么。
我已经创建了object类,也创建了一个类来保存该对象的数组。我还完成了必须将其添加到数组中的部分,但是如果该对象已经存在于该数组中,我不知道要抛出什么异常

最简单的方法是抛出一个存在的异常。你可以这样做

throw new IllegalArgumentException();
或者使用带字符串参数的构造函数

throw new IllegalArgumentException("The value is already in the list.");
您可以在oracle网站上查看的文档


如果您喜欢使用自定义异常。你需要遵循@3kings的建议。但是您必须使用
new
操作符。例如,
抛出新的MyCustomeException()

创建一个
运行时异常
,方法是创建一个扩展
运行时异常
的新类。或者,您可以只使用
集合而不是数组。因此,您将获得自动重复检查。

创建自定义异常
,如下所示:

public class CustomException extends Exception
{

private static final long serialVersionUID = 1997753363232807009L;

    public CustomException()
    {
    }

    public CustomException(String message)
    {
        super(message);
    }

    public CustomException(Throwable cause)
    {
        super(cause);
    }

    public CustomException(String message, Throwable cause)
    {
        super(message, cause);
    }

    public CustomException(String message, Throwable cause, 
                                       boolean enableSuppression, boolean writableStackTrace)
    {
        super(message, cause, enableSuppression, writableStackTrace);
    }

}
您可以按如下方式使用它:

throw new CustomException("blah blah blah");

请参阅此链接:

抛出MyCustomException()你需要做
CustomException
并让它扩展
Exception
我相信。您很可能会调用它
DuplicateException
,并执行
throw new DuplicateException()
取决于您要引发什么异常?我建议使用一组
Set
的大多数实现以静默方式覆盖旧值,而不是引发。