我有一个方法,应该只在对象的生命周期中调用一次。为了确保这种情况,该方法在对象中设置一个布尔型标志为true
,以便稍后检查该方法是否已经运行。如果在单个对象的生命周期中第二次调用这个方法,我现在抛出一个IllegalArgumentException
(带有描述性消息),但是这对我来说并不完全正确,因为问题实际上并不是与参数本身有关。是否有比IllegalArgumentException
更好的例外情况?用什么异常来防止多次调用方法?
在这种情况下,我选择不使用assert
语句,因为类和方法在包之外都是可见的,所以问题可能是由包之外的代码引起的。这是正确的想法吗?
'IllegalStateException'。您的对象处于非法状态以调用该方法,因为该标志被设置为一个值以指示不应该再次调用该方法。 –