簡體   English   中英

如果必須僅調用一次方法而再次調用該方法,則會拋出哪個異常?

[英]Which exception to throw if a method is called again when it must only be called once?

我有一個提供公共方法的類,該方法只能被調用一次。 如果再次調用該異常,將拋出什么適當的異常?

我當前的候選人是RejectedExecutionException

IllegalStateException可能是適當的,或類似的東西。 例如,兩次調用Thread :: start會拋出IllegalThreadStateException

我建議完全不同的東西:

考慮是否可以更改設計。

您的界面只允許調用一次方法這一事實對界面的用戶造成了限制。 接口應該使“正確方式”易於使用; 並使其難以以錯誤的方式使用它們。

因此,與其考慮拋出的異常類型,不如考慮解決方案以簡單地避免濫用接口。

例如,將方法設為私有-並僅在某些內部單例對象的構造函數中調用。 這(或多或少)保證了該方法將僅被調用一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM