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