没有与密钥关联的对象时应该抛出什么异常?

时间:2015-06-24 09:31:34

标签: java exception exception-handling

我有一个API,我正在检查给定键是否有任何现有对象可用。如果可用,则更新现有对象,否则创建新对象并保存。

如果存在密钥可用但没有对象链接的情况,应该抛出哪个异常?

1 个答案:

答案 0 :(得分:0)

这实际上取决于您希望如何构建API。我认为你首先需要决定的是:这个例外应该被调用者捕获还是不一定?换句话说,它是否是 RuntimeException

我想如果你想抛出异常,那是因为你的数据模型不应该有给定键的空/ null对象。所以,我会争论 IllegalStateException NoSuchElementException ,它扩展了 RuntimeException 。这意味着调用者不会被强制捕获异常。

如果您想强制调用者捕获异常,我建议您创建自己的异常,只需扩展异常

编辑:

例如,一个名为" MissingValueException"并定义如下:

public class MissingValueException extends Exception {
    private static final long serialVersionUID = 1L;

    public MissingValueException(final String message) {
        super(message);
    }

    public MissingValueException(final String message, final Exception root) {
        super(message, root);
    }
}