我应该在Ruby中验证方法参数吗?



我有Java背景,在Java中,当程序员调用带有错误参数的方法时,将抛出异常。Ruby程序员如何处理错误的方法参数?

来自核心类的两个相反的例子:

irb(main):009:0> "" * (-2)
ArgumentError: negative argument
        from (irb):9:in `*'
        from (irb):9
        from C:/Ruby/Ruby193/bin/irb:12:in `<main>'

irb(main):013:0> (-2).times { puts 'hello' }
=> -2

在Ruby中,我通常倾向于避免参数验证。

然而,这取决于你的主要目的是什么。如果您关心可靠性,那么在参数将导致不可恢复的错误时采取防御措施并引发异常。

这也取决于你的用例:

  • 它们是公共api吗?您可以强烈考虑验证。
  • 是私有api/方法吗?我一般会相信程序员。

一种有效的方法是在调试阶段使用参数检查,这有助于检测api的错误和误用,然后-一旦测试-删除检查。

这个棘手的问题没有完美的答案。这取决于环境和开发者的个人判断。

相关内容

  • 没有找到相关文章

最新更新