上下文:我爲學校寫了一個信號類,其中一個要求是它不能用負值初始化。驗證提供給構造函數的值的最佳實踐?
現在我的構造函數拋出異常:
/**
* Constructor
*/
public Semaphore(int value) throws Exception
{
if (value < 0)
throw new Exception("Negative value provided for initial constructor.");
this.value = value;
}
處理,以實例化一個信號異常似乎過於沉重的我,所以我正在考慮悄然任何負值設置爲零,即:
/**
* Constructor
*/
public Semaphore(int value)
{
if (value < 0)
this.value = 0;
else
this.value = value;
}
這裏沒有單一的最佳答案;它完全取決於包裝及其用戶的需求。 – keshlam
在閱讀本文後發現http://stackoverflow.com/q/6086334/2671237 - 現在使用IllegalArgumentException(未經檢查的異常) – sfyn
這正是我在下面提出的;) –