【问题标题】:Convention for naming Ruby exceptions命名 Ruby 异常的约定
【发布时间】:2013-03-11 09:38:54
【问题描述】:

我已经发布了相当多的库。我还没有决定如何命名我的例外。 Ruby 标准库总是这样命名异常(一个名词是 ExceptionError) - 例如

  • 运行时错误
  • EOF错误
  • 线程错误

相比之下,Rails 使用缩短的异常名称,例如 RecordInvalid 等。

如果我编写库,并且其中大多数与 Rails 无关,我应该使用哪种命名约定?我必须承认 Rails 的“缩写名称”对我更有吸引力,因为当异常发生时,您已经看到这是一个异常或某种错误,因为它会在日志/调试器中弹出/stderr。

【问题讨论】:

  • 我通常倾向于省略错误/异常后缀。但有时它很自然。 :)

标签: ruby api exception naming-conventions


【解决方案1】:

就我个人而言,我属于Error 阵营,但前提是它符合自然条件。将Error 放在末尾可以清楚地说明类是什么,它不是普通对象等。我觉得Exception 有点长,而且缺少后缀太含糊了。

【讨论】:

    【解决方案2】:

    这就是我的做法。

    异常的名称是否清楚地表明出了什么问题?如果是,你就完成了。如果没有,请添加Error 后缀。

    所以用你的例子:

    • ThreadError:这里 Thread 已经是 ruby​​ 中的常量,也是异常状态的不良描述。所以需要一个后缀来表示线程中的一些一般错误。
    • RecordInvalid:在这种情况下,异常的名称清楚地说明了问题所在。 RecordInvlaidError 是多余的。

    另一种思考方式可能是通用的还是特定的。

    • ThreadError:一般错误,线程发生了一些不好的事情,不知道具体是什么,但它并不好。所以这描述了“线程”中的某种“错误”。
    • RecordInvalid:具体错误,这里的记录存在数据完整性问题,无法保存。所以“记录”是“无效的”,这就是你需要说的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      相关资源
      最近更新 更多