实例变量为null时抛出的异常

时间:2014-03-18 14:59:09

标签: java nullpointerexception

我正在使用PMD规则列表制作代码库投诉。这些包括你不允许扔掉或抓住NullPointerException。我发现这个方法需要2个实例变量为非null才能运行。否则会抛出NullPointerException

public String build() {
if (apiKey == null || url == null) {
    throw new NullPointerException(
            "Cannot build: API key and URL must be set");
}

应该扔什么?在我看来NullPointerException将成为韧皮召唤。我想到的唯一另一件事是IllegalArgumentException,但这些并不是真正的论据,所以我认为它不适合。

2 个答案:

答案 0 :(得分:7)

IllegalStateException似乎完全适合:

  

表示在非法或不适当的时间调用了某个方法。

这可以合理地描述情况,不是吗?

答案 1 :(得分:6)

我想到了{p> IllegalStateException

这里要考虑的一件事是这应该是已检查的还是未经检查的异常。如果可以有效地处理与通用IllegalStateException不同的处理,您也可以考虑为此案例制定自己的显式异常。