【问题标题】:Where to check for null, in calling method or in function? [duplicate]在哪里检查 null,在调用方法或函数中? [复制]
【发布时间】:2009-04-02 22:09:22
【问题描述】:

是否应该在调用函数之前或在函数本身内进行 null 检查?

【问题讨论】:

标签: null


【解决方案1】:

我会在通话本身中说。这样一来,如果您从 5 个不同的位置调用该函数,您只需在一个位置检查 null,而不是 5 个位置。

但这不是一个确定的答案。这实际上取决于函数以及使用 null 参数调用它的后果。

【讨论】:

    【解决方案2】:

    如果您以后要使用该对象,则应检查 Before 调用该函数,从长远来看,它将避免异常,但是何时使用对象

    真的很重要

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果在函数上接收 null 是一种有效的可能性,请检查函数中的 null。也 DRY,避免在调用者中多次检查 null (所以我第二个 ryeguy 的答案)。

        如果收到 null 表示错误,则失败(并提前失败)并出现异常(或让 NullPointerException 之类的事情自然发生)。

        如果发生异常,请尝试找出原因,或者: (i) 消除问题的原因;或 (ii) 正确处理异常

        【讨论】:

          猜你喜欢
          • 2012-08-27
          • 2014-01-12
          • 2014-06-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-04
          相关资源
          最近更新 更多