我有一个提供公共方法的类,只能调用一次。 什么是一个适当的例外抛出以防再次调用?
我目前的候选人是RejectedExecutionException
答案 0 :(得分:4)
IllegalStateException
可能是合适的,或类似的东西。例如,调用Thread :: start两次会抛出IllegalThreadStateException
。
答案 1 :(得分:1)
我建议完全不同的东西:
考虑一下你是否可以改变你的设计。
您的界面只允许调用一次方法这一事实会对您的界面用户施加约束。接口应该可以很容易地“正确使用”它们;并且很难以错误的方式使用它们。
因此,不要考虑要抛出的异常类型......考虑解决方案只是简单地使其无法滥用界面。
例如,将方法设为私有 - 并仅在某个内部单例对象的构造函数内调用。 (或多或少)保证该方法将被调用一次。