5

可能重复:
为什么休眠将 HibernateException 更改为 RuntimeException(未选中)

将春季和休眠中的异常保持为未经检查的异常的原因是什么?

只是为了减少编码时的混乱,还是背后有其他一些设计原则?

4

3 回答 3

5

在处理大多数数据库异常时,开发人员几乎无能为力(我的意思是在 catch 块中写一些东西来从异常中恢复)。像数据库连接问题,表中不存在不正确的查询或列等问题。
因此,未经检查的异常可以使开发人员免于添加不必要的 catch 块。如果您仍然想要,您可以捕获所需的未检查异常并留下其余部分,而检查异常则不是这种情况。

于 2012-07-15T09:47:52.450 回答
4

已检查与未检查的异常辩论是一个古老的争论。两个阵营都有强大的支持者。作为一个团队,你应该选择一种风格并坚持下去。

虽然我只能猜测其中的原因,但显然 spring 和 hibernate 偏爱 unchecked exception 阵营。

辩论(除其他外)在“在 Java 中,我什么时候应该创建检查异常,什么时候应该是运行时异常? ”这个问题中讨论。

于 2012-07-15T09:11:47.630 回答
1

我认为像 Spring、Hibernate 这样的框架围绕 java 反射工作。而反射大部分异常都是运行时异常。

于 2012-07-15T09:22:12.520 回答