JPA例外规范

时间:2014-06-02 12:25:10

标签: java spring hibernate jpa

我正在开发一个项目,该项目使用JPA上的spring-data作为数据库层。 使用的版本:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.4.3.RELEASE</version>
    </dependency>

我的目标是在执行以下类型的代码时处理特定的异常(不仅仅是下面的异常):

        try
        {
            jpaRepository.save(target);
        } catch (Exception e1)
        {
            ....
        }

我无法找到此代码可能抛出的异常。 我查看了以下链接,但无法找到有关抛出异常的提示。

http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/api/org/springframework/data/jpa/repository/support/SimpleJpaRepository.html#save(S)

提前谢谢

3 个答案:

答案 0 :(得分:0)

该API不会抛出任何异常。如果需要,您可以捕获运行时异常。

答案 1 :(得分:0)

org.springframework.dao.DataIntegrityViolationException 

是您提到的代码可以抛出的异常。

答案 2 :(得分:0)

100%不同意捕获运行时异常。你不想做的事情,因为这很可能是一个数据完整性问题,可以通过防御性编码加以保护。

你可以防御代码以完全避免异常(据我所知,它是一个SQLException)。实际上你应该总是防守代码。

但是,您可以在SQL中捕获异常,如果这是一个无法将数据提交到数据库的问题,就像听起来一样。

听起来好像你在谈论进入数据库的例外情况,它是一个SQLException。