如果一个方法只能被调用一次,那么抛出哪个异常?

时间:2015-04-03 13:34:03

标签: java exception-handling

我有一个提供公共方法的类,只能调用一次。 什么是一个适当的例外抛出以防再次调用?

我目前的候选人是RejectedExecutionException

2 个答案:

答案 0 :(得分:4)

IllegalStateException可能是合适的,或类似的东西。例如,调用Thread :: start两次会抛出IllegalThreadStateException

答案 1 :(得分:1)

我建议完全不同的东西:

考虑一下你是否可以改变你的设计。

您的界面只允许调用一次方法这一事实会对您的界面用户施加约束。接口应该可以很容易地“正确使用”它们;并且很难以错误的方式使用它们。

因此,不要考虑要抛出的异常类型......考虑解决方案只是简单地使其无法滥用界面。

例如,将方法设为私有 - 并仅在某个内部单例对象的构造函数内调用。 (或多或少)保证该方法将被调用一次。