缺少重要参数/依赖项时抛出什么异常?

Pen*_*m10 61 java oop exception

采取这种方法

/**
 * @return List of group IDs the person belongs to
 *
 */
public List<String> getGroups() {
    if (this.getId().equals("")) return null;
}
Run Code Online (Sandbox Code Playgroud)

我想抛出异常而不是返回null,当没有设置重要的参数/依赖项时抛出的异常是什么?

Bal*_*usC 90

IllegalArgumentException如果参数/参数是从外部控制的,或者IllegalStateException如果在错误的时刻(状态)调用该方法,我会使用.在你的具体情况下,我认为这是后者.一个(可疑的)替代方案是NullPointerException.

然而,应该明确记录这@throws一点,以便用户理解原因.

  • 问题的上下文确实是有限的。在我看来,ISE是最好的选择。我也明确指出,所以我不明白这有多糟糕:) (2认同)

Arn*_*ter 5

我会使用 IllegalStateException 因为 id 是所有者的状态。如果 id 作为参数传递,则 IllegalArgumentException 是正确的。