gpt4 book ai didi

java - 在单元测试中捕获 SQLException 而不是 Spring DataIntegrityViolationException

转载 作者:行者123 更新时间:2023-12-01 12:28:38 37 4
gpt4 key购买 nike

我正在编写单元测试来使用存储过程测试数据库中失败的更新。我有一个更新表之一的存储过程。根据测试,我在存储过程中发送了不正确的数据(即违反表中完整性约束的数据)。所以我期待 SQLException 但它抛出了 Spring 的 DataIntegrityViolationException。所以我的问题是:捕获 SQLException 不是更通用的正确方法吗?

@Test(expected = SQLException.class)
public void testFailedSaveOp() {
myService.savePerson(garbagePersonData);
}

最佳答案

Spring 将通用 SQL 异常转换为更具体的异常 ( http://docs.spring.io/spring-framework/docs/2.5.6/api/org/springframework/jdbc/support/SQLExceptionTranslator.html )。大多数 JDBC 方法只是抛出 SQLException,这是非常广泛的,并不能真正告诉您想要什么错误。 Spring 尝试为您提供更具体的异常,您可能希望以不同的方式处理这些异常。

从更一般的意义上来说,想想为什么不到处抛出Exception。还有更具体的异常(exception)情况,可以为您提供有关您可能希望以不同方式处理的情况的更多信息。

关于java - 在单元测试中捕获 SQLException 而不是 Spring DataIntegrityViolationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26124694/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com