2013-03-21 96 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有點長,我的口味,缺乏後綴太模糊。