我们做的时候
session.save()
在hiberbate方面,它可能会抛出不同的异常。我们需要处理它们。我们应该怎么做呢?
我发现了两个save()实现(在SessionImpl和SessionDelegatorBaseImpl中),在SessionImpl的save()中抛出了hibernate异常。
有人可以向我解释这些东西吗?
答案 0 :(得分:1)
大多数Hibernate异常都是RuntimeExceptions
,因此您应该只在需要时处理。
因此,从Hibernate 3.x开始,抛出所有异常 Hibernate是未经检查的Runtime Exception的子类型,即 通常在应用程序的单个位置处理。这也是 使任何Hibernate模板或包装器API都过时。
这可能会有助why hibernate changed HibernateException to (unchecked) RuntimeException
答案 1 :(得分:0)
您可以捕获异常并抛出另一个更有意义的异常,并在适当的层中捕获它,以便您可以充分处理异常。
答案 2 :(得分:0)
如果您在保存时遇到异常,则必须考虑回滚,具体取决于您的应用程序需求。