如果要求的密钥不存在,应该抛出什么异常?

时间:2015-03-12 07:35:16

标签: java exception

我正在研究一个非泛型类,它应该实现一个基于整数键查找对象的方法。任务说:“如果搜索的元素不存在,则抛出异常。”

在这种情况下,哪些例外情况会相关?或者我应该通过扩展Exception来创建自己的'NotFoundException'类?

这些会有什么帮助吗? - NotBoundException - AclNotFoundException

2 个答案:

答案 0 :(得分:2)

NoSuchElementException可能已经足够好了。尽管文档说明由枚举的nextElement方法抛出,以指示枚举中没有更多元素。所以在其他上下文中看到它可能有点令人惊讶。

如果您没有通用"未找到"您的班级路径上的例外情况(例如javax.ws.rs.NotFoundExceptionjavax.persistence.EntityNotFoundException),我说最好的选择就是自己动手。

答案 1 :(得分:0)

这取决于方法的调用者是应该处理异常还是应该将其传递给调用者。例如:

uiAction()
  appAction()
    daoFindByKey(int i)

如果daoFindByKey(int i)抛出异常,appAction()应以某种方式处理它,而不是抛出一个已检查的Exception或一个合适的子类。否则抛出运行时异常或合适的子类。