可能是重复问题:
为什么Hibernate将HibernateException更改为RuntimeException(未经检查)
在Spring和Hibernate中将异常保留为未经检查的异常的原因是什么?
只是为了减少编码时的混乱,还是有其他设计原则支持它?
可能是重复问题:
为什么Hibernate将HibernateException更改为RuntimeException(未经检查)
在Spring和Hibernate中将异常保留为未经检查的异常的原因是什么?
只是为了减少编码时的混乱,还是有其他设计原则支持它?
在处理大多数数据库异常时,开发人员几乎无法做任何事情(我是指编写一些catch块以从异常中恢复)。例如,数据库连接问题、错误的查询或表中不存在列等问题。
因此,未检查的异常可以帮助开发人员避免添加不必要的catch块。如果您仍然希望捕获所需的未检查异常并留下其余未检查异常,则需要使用已检查的异常。
已经有很长时间关于“已检查异常 vs 未检查异常”的争论。两派都有坚定的支持者。作为一个团队,你应该选择一种风格并坚持下去。
尽管我只能猜测其理由,但显然 Spring 和 Hibernate 更倾向于未检查异常阵营。
这场争论(以及其他问题)在问题“在Java中,何时应创建已检查异常,何时应该是运行时异常?”中进行了讨论。
我认为像Spring、Hibernate这样的框架是围绕Java反射工作的。而反射大多数异常都是运行时异常。