【问题标题】:Why are exception in spring and hibernate most unchecked exception? [duplicate]为什么春季和休眠中的异常是最未经检查的异常? [复制]
【发布时间】:2012-07-14 11:50:51
【问题描述】:

可能重复:
why hibernate changed HibernateException to RuntimeException (unchecked)

将异常在spring和hibernate中保持为未经检查的异常的原因是什么?

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

【问题讨论】:

    标签: java spring hibernate exception


    【解决方案1】:

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

    【讨论】:

    • True.. 那么问题来了,jdbc 怎么会漏掉这一点,让大部分异常检查异常......
    • @Jyotirup:不了解 jdbc,但它看起来像 Hibernate 和 Spring 从 jdbc 的错误中吸取了教训。
    【解决方案2】:

    checked 与 unchecked Exception 的争论由来已久。两个阵营都有强大的支持者。作为一个团队,你应该选择一种风格并坚持下去。

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

    在问题“In Java, when should I create a checked exception, and when should it be a runtime exception?”中讨论了(除其他外)辩论。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-17
        • 1970-01-01
        • 2011-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-08
        相关资源
        最近更新 更多