![](/img/trans.png)
[英]What argument should I throw when a function that should only be called once is called again?
[英]Which exception to throw if a method is called again when it must only be called once?
IllegalStateException
可能是適當的,或類似的東西。 例如,兩次調用Thread :: start會拋出IllegalThreadStateException
。
我建議完全不同的東西:
考慮是否可以更改設計。
您的界面只允許調用一次方法這一事實對界面的用戶造成了限制。 接口應該使“正確方式”易於使用; 並使其難以以錯誤的方式使用它們。
因此,與其考慮拋出的異常類型,不如考慮解決方案以簡單地避免濫用接口。
例如,將方法設為私有-並僅在某些內部單例對象的構造函數中調用。 這(或多或少)保證了該方法將僅被調用一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.