什么时候抛出非法状态异常与非法争议异常?
2022-09-03 06:42:29
让我们从Javadocs开始:
在非法或不适当的时间调用方法的信号。换句话说,Java 环境或 Java 应用程序未处于适合所请求操作的状态。
抛出以指示方法已通过非法或不适当的参数。
上述问题是它们非常黑白分明。考虑一个用例,其中方法正在分析调用方提供的文件。该文件存在、可读且格式正确。但是,文件中的某些内容不符合业务规则。在这种情况下,什么是适当的异常 - 或者?IllegalStateException
IllegalArgumentException
查看提供断言的各种库,如番石榴前提条件或Spring Assert,似乎没有共识。这里和这里都有一些很好的讨论,但没有一个为我上面提到的常见用例提供结论性的答案。