【发布时间】:2018-09-19 20:18:36
【问题描述】:
我对使用异常感到困惑:IllegalStateException vs UnsupportedOperationException。
我有一个在某些情况下不允许使用的删除方法:假设调用者有有效数据时。
那么我应该给用户一个异常信息,他现在正在做一个无效的操作。
那么,我应该抛出哪个异常? IllegalStateException 或 UnsupportedOperationException。
我知道我可以使用其中任何一个来提供详细信息,但我仍然想知道哪个更适合我的情况。
来自 JavaDoc:
- IllegalStateException:
表示方法已在非法或不适当的时间被调用。换言之,Java 环境或 Java 应用程序未处于请求操作的适当状态。
- UnsupportedOperationException:
抛出表示不支持请求的操作。
【问题讨论】:
-
这主要是基于意见的。如果你只在某些非法状态下抛出异常,我会投票给
IllegalStateException。 -
@lexicore 尽管询问何时使用 X 和何时使用 Y 的问题似乎是基于意见的,但这两个例外之间有明显的区别,很容易我认为应该客观地解释一下。
标签: java illegalstateexception