在调用方法或函数中检查 null,哪个更好?

4

在调用函数之前还是在函数内部检查 null 呢?


(在进行函数调用之前,应该先检查是否为空值,还是在函数内部进行检查呢?)

在哪里检查一个对象是否为空或不为空? - strager
4个回答

7

我认为应该在调用函数内部进行判断。这样,如果你从5个不同的位置调用该函数,你只需要在一个地方检查null,而不是在5个地方都检查。

但这并不是一定的答案。它真正取决于函数本身以及使用null参数调用函数会产生什么后果。


1
如果您稍后要使用该对象,应在调用函数之前检查它,这将在长期运行中避免异常,但真正重要的是在使用对象时。

1

始终要进行防御性编程。两者都要做,但被调用方更为重要。


1
如果在函数中接收到null是一个有效的可能性,请在函数内部检查null。同时保持DRY,避免在调用者中多次检查null(所以我支持ryeguy的答案)。
如果接收到null表示错误,请使用异常失败(并尽早失败),或者让类似于NullPointerException的异常自然发生。
如果出现异常,请尝试找出原因,并且:(i)消除问题的原因;或者(ii)正确处理异常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接