目錄表

,

Effective Java - Check parameters for validity

Introduction & My Opinion

這個item主要在探討檢查輸入參數是否合法。首先先看看不檢查的後果:


而針對處理的建議,主要如下:

method中的第二點與第三點的界定很清楚,我比較有疑問的是如何定義不切實際。這種參數檢查如果不如預期,我們通常會拋出IllegalArgumentException、IndexOutOfBoundsException或是NullPointerException;而這種例外屬於programming errors。如果實際狀況根本不可能發生,是否這就代表著不切實際呢? 畢竟如果做這樣子的檢查,我就會需要有對應的測試。因此,目前我的想法如下:


另外書中有提到一個原則是: 如果參數足夠完成工作,限制應越少越好。這點也滿足Postel's Law所提倡的。

PS. 檢查可以考慮使用Guava的Preconditions,可以讓你的程式碼看起來較簡潔。

Note

Effective Java第三版Item 49。

Reference