我的方法有一个抛出NullPointerException
的返回类型。
public class Student {
public String studentOne() {
//code to get name
if(name == null)
throw new NullPointerException("Error");
else
return name;
}
}
我的问题是..我应该在抛出新异常时使用public String studentOne throws NullPointerException
吗?
P.S:我知道抛出nullPointerException
不是最好的做法。但它在我的项目中是必需的
答案 0 :(得分:6)
NullPointerException
是一个未经检查的异常,因此您不需要也不应该将其声明为抛出。您不需要为任何未经检查的异常执行此操作。当然,如果你声明它们,编译器无论如何都会忽略它们。
至于抛出一个NPE
,只要值为null
,当你无法继续使用该方法时,抛出它就可以了。但是,无论是显式抛出它还是在引发它时都会隐式抛出它都没有任何区别。只是您可以在明确抛出时传递自定义消息。
当然,您可以在方法中记录此行为,在某些情况下它会抛出NPE
,以便让用户知道这一点。
答案 1 :(得分:1)
更好的解决方案是向方法
添加文档/**
* @param name - not null. NullPointerExcpetion will thrown in case of null
*
* @return some string
*/
public String studentOne(String name)
{
// ...
}
之间没有区别
public String studentOne(String name)
和
public String studentOne(String name) throw NullPointerException
因为NullPointerException
是未经检查的例外