Java空引用最佳实践
Java空引用最佳实践
在Java中,以下哪种方法更被“接受”来处理可能为null的引用?请注意,null引用并不总是表示错误...
if (reference == null) { //create new reference or whatever } else { //do stuff here }
还是
try { //do stuff here } catch (NullPointerException e) { //create new reference or whatever }
admin 更改状态以发布 2023年5月24日
已经给出的答案非常好(不要使用异常来控制流程;抛出和处理异常的成本很高)。还有另外一个重要的原因,特别是不要捕获NullPointerException
。
考虑一个执行以下操作的代码块:
try { reference.someMethod(); // Some other code } catch (NullPointerException e) { // 'reference' was null, right? Not so fast... }
这似乎是处理reference
的null情况的安全方法...但是如果reference
不是null且someMethod()
引发了NPE呢?或者在try
块的其他地方引发了NPE? 捕获NPE是一个确保错误无法被发现和修复的方法。