我有一个方法将枚举作为参数并返回一些依赖于该参数的信息。但是,该枚举包含一些不应处理的值,应该引发错误条件。目前,该方法抛出一个 IllegalArgumentException,但我希望这是一个已检查的异常,以强制调用者捕获它(并优雅地返回,记录错误)。有什么合适的或者我应该创建自己的异常子类吗?
我也对其他模式持开放态度。一个合理的 react 是应该处理枚举的所有值,但事实并非如此。当一个新值被添加到枚举中时,我想确保这个方法做正确的事情——在这种情况下提醒人类比使用一些默认返回值更可取。
感谢您的任何建议。
最佳答案
您当然可以创建自己的已检查异常(例如 UnhandledEnumType),或者您可以捕获并处理 IllegalArgumentException。只应处理枚举的某些值,这听起来有点可疑。枚举的目的之一是将值绑定(bind)到一组特定的值,我希望所有这些都得到处理。如果您担心添加新值,您应该进行测试以测试所有值是否都得到了正确处理(通过使用枚举的 values() 方法来确保它们都经过测试)。
关于java - 检查等同于 IllegalArgumentException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2471604/