最近我的一个同事用一些代码写了一个代码来捕获整个方法的空指针异常,然后返回一个结果.我指出了空指针有多种原因,所以我们将其改为对一个结果进行防御性检查.
但是,捕获NullPointerException似乎对我来说不对.在我看来,Null指针异常是错误代码的结果,而不是系统中的预期异常.
是否有任何情况下捕获空指针异常是有意义的?
当有后置条件时,方法的返回值不能为空,可以做什么?
我可以
assert returnValue != null : "Not acceptable null value";
Run Code Online (Sandbox Code Playgroud)
断言可以关闭!
所以可以这样做
if(returnValue==null)
{
throw new NullPointerException("return value is null at method AAA");
}
Run Code Online (Sandbox Code Playgroud)
?
或者,对于这样的条件,使用用户定义的异常(如NullReturnValueException)会更好吗?