spring事务管理异常处理

发布于 2022-08-26 17:42:25 字数 121 浏览 5 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

奈何桥上唱咆哮 2022-09-02 17:42:25

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

じее 2022-09-02 17:42:25

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

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

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

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

TransactionStatus中的setRollbackOnly()方法

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文