首页 > 其他分享 >springboot seata 全局捕获异常失效

springboot seata 全局捕获异常失效

时间:2024-05-09 18:33:45浏览次数:24  
标签:springboot RuntimeException 抛出 捕获 失效 全局 异常 seata

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

 如果启动时,打印了你写的字符串就说明时烧苗到了

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

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

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

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

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

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

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

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

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

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

 

标签:springboot,RuntimeException,抛出,捕获,失效,全局,异常,seata
From: https://www.cnblogs.com/luolei0120/p/18182891

相关文章

  • Springboot项目的jar包的运行方式以及使用yum安装java后忘记了位置
    SpringBoot项目打包后的jar的部署方式这里我写了五种部署方式1.直接启动java-jarxxx.jar这种方式就只适合自己在测试时用一下,关闭会话就能停止运行属实是方便。2.后台启动java-jarxxx.jar&在后台静默启动,同样关闭会话也会停止,优点是和上面一样,日志是打印在窗口的3......
  • Springboot - [06] yaml语法讲解
    Yaml是一种标记语言,Yaml也不是一种标记语言。 一、yaml写法示例application.yaml#普通的key-valuename:harleyserver.port:8081#对象student:name:harleyage:25#对象的行内写法student:{name:harley,age:25}#数组pets:-cat-......
  • SpringBoot - [04] 自动装配原理
    题记部分   SpringBoot的自动装配(Auto-Configuration)原理是其简化Spring应用开发的关键特性之一,它能自动配置Spring框架及第三方库,极大地减少了手动配置的工作量。以下是SpringBoot自动装配的核心原理和步骤:(1)条件化配置(ConditionalConfiguration):  SpringBoot利用Spr......
  • Springboot - [05] 彩蛋~
    题记部分  彩蛋一:如何更换Springboot启动时的logo(1)访问https://www.bootschool.net/ascii-art/search,搜索到佛祖的ASCII艺术字(图)集(2)将内容拷贝到src/main/resources下的文件中,文件名称为banner.txt(3)启动SpringBoot的应用  彩蛋二:  彩蛋三:   —要......
  • SpringBoot系列---【解决springboot应用突然无法启动了,日志中也没有错误日志】
    解决springboot应用突然无法启动了,日志中也没有错误日志1.问题描述五一过完了,来了之后突然发现一个微服务起不来了,本地启动没问题,但是上测试环境就是无法启动,但是查看日志,日志中也没有报错信息。怀疑是网络策略的问题,curl去试了一下数据库,as,redis,zk等等中间件,发现都通,最后又试了......
  • springboot整合mybatis自动生成框架
    1、添加自动生成配置在根目录下创建:mybatis-generate.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEgeneratorConfigurationPUBLIC"-//mybatis.org//DTDMyBatisGeneratorConfiguration1.0//EN""http://mybat......
  • Mysql-索引失效
    0.背景借鉴抖音“老猿说开发”总结的一句口诀。索引可能失效场景如下:模型数空运最快序号关键字含义解释1模模糊查询当使用模糊查询(比如使用LIKE操作符)时,如果查询条件的开头使用了通配符(如%),那么索引可能会失效。因为通配符在查询开始位置时,数据库无法利用索引进......
  • springboot整合mybatis-plus手动配置
    1、添加依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.6</version></dependency><dependency>......
  • 美团二面:SpringBoot读取配置优先级顺序是什么?
    引言SpringBoot作为一种轻量级的Java应用程序框架,以其开箱即用、快速搭建新项目的特性赢得了广大开发者的青睐。其核心理念之一就是简化配置过程,使开发者能够快速响应复杂多变的生产环境需求。为了实现这一点,SpringBoot支持丰富的外部化配置机制,允许应用程序根据不同的部署环境......
  • EBS:物料失效 检查
    EBS 物料失效时,提示: 存在现有量,或者此物料未完成的交货事务处理。请先处理这些交货事务处理,然后更改此属性。 解决方式:检查以下几个表是是否存在记录,如果存在请完成相关事务后, 再失效物料。 select*frommtl_onhand_quantities_detailwhereinventory_item_id=188......