繁体   English   中英

为什么hibernate将HibernateException更改为(未选中)RuntimeException

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM