我什么时候应该在动态类型语言中使用null


When should I use null in dynamically-typed languages?

每当我用动态类型语言编写函数时,我仍然纠结于返回什么是最好的东西,以便于处理调用函数中的错误并保持程序流的流畅性。

当使用动态类型语言的函数出现问题时,社区认为返回的正确内容是什么?

我的总体想法是:

  1. 如果返回实际值,则如果函数成功执行,则应使用该类型返回数据;如果出现意外,则应返回null。

  2. 应该为通用实用程序函数保留抛出异常

  3. 如果发生错误,则不应返回特定类型的默认值,例如,如果用户需要字符串,则在发生错误时不应返回空字符串。

当发生异常时(按照单词的含义(,抛出异常。null类似于"无",这并不意味着不可避免地会发生错误。例如,一个find()-方法可能会返回null,以防它没有发现任何与某些给定标准匹配的内容。当你将null定义为"错误"时,你就有了一种神奇的值,就像古老的"神奇数字"一样,它总是必须记录下来等等。

我质疑使用自定义异常。听起来很复杂。

请执行以下操作:通过引用传递变量以返回数据,并使用bool返回值表示成功/失败