我认为大多数时候,如果不是总是这样,我们可以通过在发送消息之前检查对象是否为空来避免空指针异常。
何时捕获NullPointerException而不是检查空指针是否明智?
答案 0 :(得分:6)
虽然从技术上讲,诸如NullPointerException之类的RuntimeException与IOException之类的已检查异常相同,但它们的理念却截然不同。简而言之,检查异常是为了允许处理程序员控制的问题,例如网络故障或丢失文件。未经检查的异常的预期用途是捕获编程错误。
鉴于它们可以捕获编程错误,因此几乎不会捕获NullPointerException和其他未经检查的异常。相反,应该修复允许抛出它们的编程错误。
答案 1 :(得分:5)
检查null是最好的方法。我从未接受过NPE。实际上我总是试图不从我的方法发送null而是做一个“return Collections.emptyList();”所以调用者不必检查null。
答案 2 :(得分:2)
null
。
答案 3 :(得分:2)
正如其他人所说,检查null而不是捕获它更好。在我看来,唯一的一次,你会捕获NullPointerException,当你调用的一些API和你无法控制时抛出那个特殊的异常。然后,捕获NullPointerException并相应地处理它是有意义的。
答案 4 :(得分:1)