4

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

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

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

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

4

2 回答 2

10

这是我的做法。

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

所以使用你的例子:

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

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

  • ThreadError: 一般错误,线程发生了一些不好的事情,不知道到底是什么,但它不好。所以这描述了“线程”中的某种“错误”。
  • RecordInvalid: 特定错误,此记录的数据完整性存在特定问题,无法保存。所以“记录”是“无效的”,这就是你需要说的。
于 2013-03-21T18:21:45.667 回答
1

就个人而言,我在Error营地,但只有当它感到自然时。放在Error最后可以清楚地说明类是什么,它不是一个普通的对象,等等。我觉得Exception我的口味有点长,缺少后缀太模棱两可了。

于 2013-03-21T18:22:06.273 回答