springboot seata 全局捕获异常失效

问题:Spring boot使用@ControllerAdvice或@RestControllerAdvice全局捕获异常时,捕获不到自己抛出的相应异常
首先看一下全局异常组件有么有被扫描到
如何查看,很简单只需要写一段类加载打印代码,如下

 如果启动时,打印了你写的字符串就说明启动时被扫描到了

 这就说明是其他的问题了,那就只有一种情况:在到达全局异常捕获之前这个异常被处理过了

这就要打断点去看一下抛出的异常在哪里被如何处理了

比如我这里抛出的异常是这样

 到springboot实体调用这里是没问题的,这里抛出TargetException就是我们自己抛出的异常

 到这里就有问题了,注意看下面,被包装了一层RuntimeException("try to proceed invocation error", var2)异常,我们的异常就被放到RuntimeException异常里面了,到这里后抛出的异常就变成了RuntimeException

这就是使用Seata框架的一个小坑了

 然后下一步,到这我们异常就变成了这样,成为了RuntimeException的cause

 所以这个地方捕获不到我们抛出的对应异常

 所以这里我自己又加了一个全局异常捕获

如果是其他问题也可以通过断点调试找到问题的

 

posted @   llili  阅读(553)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2022-05-09 gitlab : You won`t be able to pull or push project code via SSH until you add an SSH key to your profile(导致的问题:合并不了代码)
点击右上角即可分享
微信分享提示