我正在编写一个通用API,该API接受参数并返回结果。我希望,如果数据一致,则ID只会返回一个结果。如果得到1个结果,则将其返回。如果得到0个结果,则可以引发“ MissingResourceException”或“ NoSuchElementException”等。但是,如果获得多个结果,应该抛出什么?我查看了明显的地方(Oracle / Java API文档,使用Google搜索,当然还有StackOverflow),但是没有找到。
请注意,我可能无法控制数据,因此“有效的数据/为您的数据求助”的建议虽然有效,但对我没有帮助。
任何帮助表示赞赏。
约书亚·布洛赫(Joshua Bloch)的《有效Java》(Effective Java)在第60条中说(赞成使用标准异常):
另外,如果您想添加更多的故障捕获信息(项目63),请随意将现有的异常分类。
因此,我为IllegalStateException或之一投票YourOwnException(并附上与失败相关的其他信息)。