我们应该在保存实体的同时处理异常

时间:2013-04-29 08:28:25

标签: java hibernate exception

我们做的时候

session.save()
在hiberbate方面,它可能会抛出不同的异常。我们需要处理它们。我们应该怎么做呢?

我发现了两个save()实现(在SessionImpl和SessionDelegatorBaseImpl中),在SessionImpl的save()中抛出了hibernate异常。

有人可以向我解释这些东西吗?

3 个答案:

答案 0 :(得分:1)

大多数Hibernate异常都是RuntimeExceptions,因此您应该只在需要时处理。

  

因此,从Hibernate 3.x开始,抛出所有异常   Hibernate是未经检查的Runtime Exception的子类型,即   通常在应用程序的单个位置处理。这也是   使任何Hibernate模板或包装器API都过时。

这可能会有助why hibernate changed HibernateException to (unchecked) RuntimeException

答案 1 :(得分:0)

您可以捕获异常并抛出另一个更有意义的异常,并在适当的层中捕获它,以便您可以充分处理异常。

答案 2 :(得分:0)

如果您在保存时遇到异常,则必须考虑回滚,具体取决于您的应用程序需求。