我正在编写一个通用API,它接受参数并返回结果。我希望如果数据一致,则只返回一个ID的结果。如果我得到1个结果,我会退回。如果我得到0结果,我可以抛出“MissingResourceException”或“NoSuchElementException”等。但是,如果我得到多个结果,我该扔什么?我查看了显而易见的地方(Oracle / Java API文档,Google搜索,当然还有StackOverflow),但没找到。
请注意,我可能无法控制数据,因此“数据应该是好的/警察你的数据”建议虽然有效,但对我没有帮助。
感谢任何帮助。
答案 0 :(得分:4)
Joshua Bloch的 Effective Java 在第60项(赞成使用标准例外)中说:
此外,如果您想添加更多故障捕获信息(第63项),请随意对现有异常进行子类化。
所以,我投票给IllegalStateException
或YourOwnException
中的一个(附加了与失败相关的信息)。