java - 检查等同于 IllegalArgumentException?

标签 java exception exception-handling

我有一个方法将枚举作为参数并返回一些依赖于该参数的信息。但是,该枚举包含一些不应处理的值,应该引发错误条件。目前,该方法抛出一个 IllegalArgumentException,但我希望这是一个已检查的异常,以强制调用者捕获它(并优雅地返回,记录错误)。有什么合适的或者我应该创建自己的异常子类吗?

我也对其他模式持开放态度。一个合理的 react 是应该处理枚举的所有值,但事实并非如此。当一个新值被添加到枚举中时,我想确保这个方法做正确的事情——在这种情况下提醒人类比使用一些默认返回值更可取。

感谢您的任何建议。

最佳答案

您当然可以创建自己的已检查异常(例如 UnhandledEnumType),或者您可以捕获并处理 IllegalArgumentException。只应处理枚举的某些值,这听起来有点可疑。枚举的目的之一是将值绑定(bind)到一组特定的值,我希望所有这些都得到处理。如果您担心添加新值,您应该进行测试以测试所有值是否都得到了正确处理(通过使用枚举的 values() 方法来确保它们都经过测试)。

关于java - 检查等同于 IllegalArgumentException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2471604/

相关文章:

elasticsearch - 原因以及如何调试 Elasticsearch CircuitBreakingException

c# - 在代码中使用 '"using"关键字时,我应该在哪里捕获异常?

java - 从 Java 调用 Xinitthreads。 Gnuplot 错误

java - 更改 keystore 中私钥的证书

c# - 一台机器上出现通用 GDI+ 错误,但另一台机器上没有

Javascript - 异常/错误数据类型?

c# - c#中的异常处理

java - 如何在类构造函数中初始化数组

java - 重新定义/ rebase native 方法

java - Android 中的 Crashlytics - 如何在一个地方捕获所有异常/崩溃