我正在使用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
,但这些并不是真正的论据,所以我认为它不适合。
答案 0 :(得分:7)
答案 1 :(得分:6)
IllegalStateException
。
这里要考虑的一件事是这应该是已检查的还是未经检查的异常。如果可以有效地处理与通用IllegalStateException
不同的处理,您也可以考虑为此案例制定自己的显式异常。