![](/img/trans.png)
[英]Hibernate exceptions keep getting handled by RuntimeException.class rather than HibernateException.class
[英]why hibernate changed HibernateException to (unchecked) RuntimeException
我知道在某些版本中,Hibernate异常被更改为未选中。 是什么原因? 这是一个哲学问题还是实际问题?
实际的。 因此,您不必在try catch块中包含有关Hibernate的每个操作。
摘自Java Persistence with Hibernate:
异常的历史 - 例外以及它们应该如何处理总是在Java开发人员之间激烈争论中结束。 Hibernate也有一些值得注意的历史也就不足为奇了。 在Hibernate 3.x之前,Hibernate抛出的所有异常都是经过检查的异常,因此每个Hibernate API都会强制开发人员捕获和处理异常。 此策略受JDBC的影响,JDBC也仅抛出已检查的异常。 然而,很快就会发现这没有意义,因为Hibernate抛出的所有异常都是致命的。 在许多情况下,开发人员在这种情况下可以做的最好的事情是清理,显示错误消息并退出应用程序。 因此,从Hibernate 3.x开始,Hibernate抛出的所有异常都是未经检查的Runtime Exception的子类型,它通常在应用程序的单个位置处理。 这也使得任何Hibernate模板或包装器API都过时了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.