我有一個方法,應該只在對象的生命週期中調用一次。爲了確保這種情況,該方法在對象中設置一個布爾型標誌爲true
,以便稍後檢查該方法是否已經運行。如果在單個對象的生命週期中第二次調用這個方法,我現在拋出一個IllegalArgumentException
(帶有描述性消息),但是這對我來說並不完全正確,因爲問題實際上並不是與參數本身有關。是否有比IllegalArgumentException
更好的例外情況?用什麼異常來防止多次調用方法?
在這種情況下,我選擇不使用assert
語句,因爲類和方法在包之外都是可見的,所以問題可能是由包之外的代碼引起的。這是正確的想法嗎?
'IllegalStateException'。您的對象處於非法狀態以調用該方法,因爲該標誌被設置爲一個值以指示不應該再次調用該方法。 –