use*_*212 3 java exception-handling
当我有一个潜在的空输入时...总是检查它是否更好:
public void doSomething(String str) {
if (str == null)
throw new NullPointerException();
processData(str);
}
Run Code Online (Sandbox Code Playgroud)
或传递无效数据,并等待"processData()"抛出nullPointerException:
public void doSomething(String str) {
processData(str);
}
Run Code Online (Sandbox Code Playgroud)
这是固执己见,但是最好把它放在第一层:
如果你有一个stracktrace并在库实现中看到NPE(内心深处),则不清楚它是由库中的错误还是由你的非法参数引起的.
出于同样的原因,我建议使用描述性IllegalArgumentException而不是NPE:
if (str == null)
throw new IllegalArgumentException("str is null");
Run Code Online (Sandbox Code Playgroud)
(并给出str一个更好的名字).