2013-03-21 97 views
4

我已经有相当多的库发布了。我还没有决定的是如何命名我的例外。 Ruby的标准库总是名例外本身(名词,是ExceptionError) - 例如约定用于命名Ruby异常

  • RuntimeError
  • 的EOFError
  • ThreadError

导轨,与此相反,使用缩短的例外名称,如RecordInvalid等。

如果我编写库,并且大部分都不是Rails相关的,我应该使用哪种命名约定?我必须承认Rails的“缩写名称”对我更有吸引力,因为当发生异常时,您已经在看到这是一个异常或某种错误,因为它弹出在logs/debugger/stderr中。

+0

我通常倾向于省略错误/异常后缀。但有时它自然适合。 :) – 2013-03-21 18:09:23

回答

7

下面是我如何做到这一点。

该例外的名称是否清楚发生了什么问题?如果是,你就完成了。如果不是,请添加Error后缀。

因此,使用你的例子:

  • ThreadError:这里Thread已经在红宝石常量,也是一个特殊的状态较差描述符。所以需要后缀来表示线程中的一些通用错误。
  • RecordInvalid:在这种情况下,例外的名称清楚地说明了什么是错的。 RecordInvlaidError将是多余的。

想想它的另一种方法可能是通用的与具体的。

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

我认为这是有道理的。 – Julik 2013-03-24 18:21:52

1

就我个人而言,我在Error阵营,但只有当它自然。最后把Error说清楚了,这是什么类,它不是一个普通的对象,等等。我发现Exception有点长,我的口味,缺乏后缀太模糊。