首页 > spring事务管理异常处理

spring事务管理异常处理

spring一般在runtimeexception时才会回滚,如果捕获了异常则不会回滚。

有什么办法能正常处理捕获异常并进行回滚,并且将具体的错误信息return。 而一旦出现异常后,就不会执行return了


如果你是使用spring声明式事务:

可以自己catch住非RumtimeException,log,然后包装成一个RuntimeException,reThrow,不过这样没办法将错误信息返回。一般正常逻辑,如果出现异常,即表明代码执行有问题,不应该返回结果

如果你是使用spring编程式事务:

这个问题很好解决,在事务模块的回调代码块中即TransactionCallback中catch住非RumtimeException,然后调用

TransactionStatus中的setRollbackOnly()方法

即可导致事务回滚,通过可将错误信息,返回给外部事务调用者。具体的用法,可google一下spring的TransactionTemplate的使用


不用return啊 你直接抛出异常 在外层代码在 try 这样就可以

【热门文章】
【热门文章】