Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 捕获异常或直接捕获业务异常_Java_Spring_Spring Mvc_Spring Data - Fatal编程技术网

Java 捕获异常或直接捕获业务异常

Java 捕获异常或直接捕获业务异常,java,spring,spring-mvc,spring-data,Java,Spring,Spring Mvc,Spring Data,我使用的是Spring引导和Spring数据 在服务层,哪一个更好,尝试插入记录并通过唯一键捕获“已插入”异常,然后将其转换为业务异常,或者使用存储库查找记录并直接抛出业务异常?数据库PK是维护唯一性约束的最佳方法,若您尝试查询和检查PK的方法,那个么您可能会遇到竞争条件,在这种情况下,PK将通过唯一检查,但在insert中失败,所以任何抛出SQL异常的方式都应该得到处理。 因此,最好通过异常进行处理,并将其转化为完整的业务错误。最好从客户那里提取详细的原因。最好在捕获一些DB异常后,抛出带有适

我使用的是Spring引导和Spring数据


在服务层,哪一个更好,尝试插入记录并通过唯一键捕获“已插入”异常,然后将其转换为业务异常,或者使用存储库查找记录并直接抛出业务异常?

数据库PK是维护唯一性约束的最佳方法,若您尝试查询和检查PK的方法,那个么您可能会遇到竞争条件,在这种情况下,PK将通过唯一检查,但在insert中失败,所以任何抛出SQL异常的方式都应该得到处理。
因此,最好通过异常进行处理,并将其转化为完整的业务错误。

最好从客户那里提取详细的原因。最好在捕获一些DB异常后,抛出带有适当消息的自定义异常