【发布时间】:2012-07-14 11:50:51
【问题描述】:
可能重复:
why hibernate changed HibernateException to RuntimeException (unchecked)
将异常在spring和hibernate中保持为未经检查的异常的原因是什么?
只是为了减少编码时的混乱还是背后有其他一些设计原则?
【问题讨论】:
标签: java spring hibernate exception
可能重复:
why hibernate changed HibernateException to RuntimeException (unchecked)
将异常在spring和hibernate中保持为未经检查的异常的原因是什么?
只是为了减少编码时的混乱还是背后有其他一些设计原则?
【问题讨论】:
标签: java spring hibernate exception
在处理大多数数据库异常时,开发人员几乎无能为力(我的意思是在 catch 块中写一些东西来从异常中恢复)。像数据库连接问题,不正确的查询或列不存在表等问题。
因此,未经检查的异常可以使开发人员免于添加不必要的 catch 块。如果您仍然想要,您可以捕获所需的未检查异常并留下其余部分,而检查异常则不是这种情况。
【讨论】:
checked 与 unchecked Exception 的争论由来已久。两个阵营都有强大的支持者。作为一个团队,你应该选择一种风格并坚持下去。
虽然我只能猜测其中的原理,但显然 spring 和 hibernate 偏爱 unchecked exception 阵营。
在问题“In Java, when should I create a checked exception, and when should it be a runtime exception?”中讨论了(除其他外)辩论。
【讨论】:
我认为像 Spring、Hibernate 这样的框架围绕 java 反射工作。而且反射大部分异常都是运行时异常。
【讨论】: