我有一个简单的属性的setter方法,null不适合这个特定的属性.我总是在这种情况下被撕裂:我应该扔一个IllegalArgumentException,还是一个NullPointerException?从javadocs看,两者似乎都合适.有某种理解标准吗?或者这只是你应该做的任何事情之一,而且两者都是正确的?
java null exception nullpointerexception illegalargumentexception
最近我的一个同事用一些代码写了一个代码来捕获整个方法的空指针异常,然后返回一个结果.我指出了空指针有多种原因,所以我们将其改为对一个结果进行防御性检查.
但是,捕获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)会更好吗?
我的方法有一个抛出的返回类型NullPointerException.
public class Student {
public String studentOne() {
//code to get name
if(name == null)
throw new NullPointerException("Error");
else
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是..我应该public String studentOne throws NullPointerException在抛出新的异常时使用吗?
PS:我知道这不是最好的实践nullPointerException.但它在我的项目中是必需的