用于命名Ruby异常的约定

Jul*_*lik 4 ruby api exception naming-conventions

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

  • RuntimeError
  • 引发EOFError
  • ThreadError

相反,Rails使用缩短的异常名称,例如RecordInvalid等等.

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

Ale*_*yne 9

这是我如何做到的.

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

所以使用你的例子:

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

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

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