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

What exception should be thrown if the key asked for, doesn't exist?

我正在研究一个非泛型 class,它应该实现一种基于整数键查找对象的方法。任务说:"If the element being searched for doesn't exist, throw an exception."

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

这些有帮助吗? - NotBoundException - AclNotFoundException

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

如果您的 class 路径上没有通用的 "not found" 异常(例如 javax.ws.rs.NotFoundException, or javax.persistence.EntityNotFoundException),我认为最好的选择是自己动手。

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

uiAction()
  appAction()
    daoFindByKey(int i)

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