在java中对以下方法引发异常

在java中对以下方法引发异常,java,exception,bluej,Java,Exception,Bluej,我需要修改removeDetails方法(见下文),以便在其key参数不是正在使用的key时抛出此异常 public void removeDetails(String key) { if(key == null){ throw new IllegalArgumentException("Null key passed to removeDetails."); } if(keyInUse(key)) {

我需要修改removeDetails方法(见下文),以便在其key参数不是正在使用的key时抛出此异常

public void removeDetails(String key)
    {
        if(key == null){
            throw new IllegalArgumentException("Null key passed to removeDetails.");
        }
        if(keyInUse(key)) {
            ContactDetails details = book.get(key);
            book.remove(details.getName());
            book.remove(details.getPhone());
            numberOfEntries--;
        }

    }

任何关于什么样的异常是合适的想法都会被感激地接受,

查看java文档中的
IllegalArgumentException
,它说“抛出以指示方法已被传递了非法或不适当的参数”。我认为
IllegalArgumentException
应该适合您的要求。但是,如果您想更具体一些,您可以始终创建自定义异常。

如果您不创建特定于应用程序的异常,抛出IllegalArgumentException有什么错?正如您所描述的,这是一个无效的密钥,那么这有什么问题吗?您能更具体一点吗?到目前为止,您已经尝试过检查,您的方法语义似乎很接近-本质上是NPE表示空键,布尔结果表示不存在的键