我知道在某些版本中,Hibernate异常被更改为未选中。是什么原因?这是一个哲学问题还是实践问题?
答案 0 :(得分:17)
实践。因此,您不必在try catch块中包含有关Hibernate的每个操作。
来自Java Persistence with Hibernate:
例外历史 - 例外 以及如何处理它们 最终在Java之间激烈争论 开发人员。这并不奇怪 Hibernate有一些值得注意的历史 同样。直到Hibernate 3.x,全部 Hibernate引发的异常是 检查异常,所以每个Hibernate API迫使开发人员抓住并且 处理异常。这个策略是 受JDBC影响,这也引发了 仅检查异常。但是,它 很快就明白,这不是 有道理,因为所有例外 Hibernate引发的是致命的。在很多 案例,开发人员可以做的最好的事情 这种情况是清理,显示 一条错误消息,然后退出 应用。因此,从 Hibernate 3.x,抛出所有异常 Hibernate是子类型的 未经检查的运行时异常,即 通常在一个地方处理 在一个应用程序中这也使得任何 Hibernate模板或包装器API 过时。