用于命名Ruby异常的约定

时间:2013-03-21 18:08:19

标签: ruby api exception naming-conventions

我已经发布了很多图书馆。我还没有决定如何命名我的例外情况。 Ruby标准库总是将例外命名为(ExceptionError的名词) - 例如

  • RuntimeError
  • 的EOFError
  • ThreadError
相反,Rails使用缩短的异常名称,如RecordInvalid等。

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

2 个答案:

答案 0 :(得分:8)

我是这样做的。

异常的名称是否明确了什么?如果是的话,你就完成了。如果没有,请添加Error后缀。

所以使用你的例子:

  • ThreadError:这里Thread已经是ruby中的常量,也是异常状态的不良描述符。因此需要一个后缀来表示线程中的一些通用错误。
  • RecordInvalid:在这种情况下,例外的名称清楚地说明了什么是错的。 RecordInvlaidError将是多余的。

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

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

答案 1 :(得分:1)

就个人而言,我在Error阵营,但只有在它自然的时候。把Error放到最后会清楚说明这个类是什么,它不是一个普通的对象等等。我觉得Exception对我的品味有点长,并且缺少后缀太模糊。

相关问题