springboot seata 全局捕获异常失效
问题:Spring boot使用@ControllerAdvice或@RestControllerAdvice全局捕获异常时,捕获不到自己抛出的相应异常
首先看一下全局异常组件有么有被扫描到
如何查看,很简单只需要写一段类加载打印代码,如下
如果启动时,打印了你写的字符串就说明启动时被扫描到了
这就说明是其他的问题了,那就只有一种情况:在到达全局异常捕获之前这个异常被处理过了
这就要打断点去看一下抛出的异常在哪里被如何处理了
比如我这里抛出的异常是这样
到springboot实体调用这里是没问题的,这里抛出TargetException就是我们自己抛出的异常
到这里就有问题了,注意看下面,被包装了一层RuntimeException("try to proceed invocation error", var2)异常,我们的异常就被放到RuntimeException异常里面了,到这里后抛出的异常就变成了RuntimeException
这就是使用Seata框架的一个小坑了
然后下一步,到这我们异常就变成了这样,成为了RuntimeException的cause
所以这个地方捕获不到我们抛出的对应异常
所以这里我自己又加了一个全局异常捕获
如果是其他问题也可以通过断点调试找到问题的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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(导致的问题:合并不了代码)