java在方法签名中是否声明NullPointerException?
Nullpointerexception被视为运行时异常,所有运行时异常都不需要在引发它的方法签名中声明。但是,NullPointerException给了我一个编译错误,说-UnhandledException!为什么会这样
1...void doMore(){
2... throw new NullPointerException();
3...}
第2行显示编译错误,但如果引发任何其他运行时异常(如NullArgumentException),则不会出现编译错误。NullPointerException真的是未经检查的异常吗
# 1 楼答案
不,因为NullPointerException扩展了RuntimeException
# 2 楼答案
可以,但不必,因为NPE是一个未经检查的异常
# 3 楼答案
我认为“doMore()”方法只是为了证明NullPointerException是否是未经检查的异常。我不知道为什么会有人需要一个抛出它们的方法
事实上,这是不受约束的。事实上,如果我使用Eclipse将您的代码粘贴到一个新类中,就不会出现编译器错误。所以我认为这与IDE配置对空相对代码验证的严格要求有关,或者与代码片段中没有出现的其他错误有关
# 4 楼答案
您可以在任何地方的代码中使用
NullPointerException
,就像其他任何异常一样。然而,作为一个未经检查的异常,您不必在函数体中声明它,也不需要处理它。因此,如果你得到一个编译器错误,那不是因为NullPointerException
,而是因为代码中的一些其他问题,你没有发布这些问题这样的方法编译起来非常好,没有任何错误:
# 5 楼答案
是的,您可以将NullPointerException用作代码中的任何其他异常,但这并不有用,因为您不需要处理代码中的所有运行时异常(未选中)
这里不会因为声明NullPointerException而出现错误,但可能是其他编译错误
在这里,您可以参考以下示例: