首页 > 其他分享 >使用ControllerAdvice定义了全局异常处理器但返回不生效

使用ControllerAdvice定义了全局异常处理器但返回不生效

时间:2024-07-24 10:50:53浏览次数:13  
标签:返回 exception ControllerAdvice 定义 处理器 全局 异常

@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {
	@ExceptionHandler(Exception.class)
	public AjaxResult exception(Exception exception){
		log.error("exception: {}", exception.getMessage());
		return AjaxResult.error(exception.getMessage());
	}
}

使用@ControllerAdvice定义了一个全局异常处理器,接口抛出异常后异常处理方法确实捕捉到了这个异常并通过log.error打印了异常信息,但是页面返回却不是异常处理器返回的内容,返回内容如下:

原因是因为我的接口的RESTFUL风格的,也就是使用RestController定义的接口,SpringMVC会自动把返回值封装成JSON格式,但是使用ControllerAdvice定义异常处理器,SpringMVC不会将返回封装成JSON,而是尝试渲染一个视图,如果没有合适的视图配置就会导致默认错误页。

解决方案:把ControllerAdvice改成RestControllerAdvice即可,或再加上ResponseBody注解

标签:返回,exception,ControllerAdvice,定义,处理器,全局,异常
From: https://www.cnblogs.com/ccx-lly/p/18320355

相关文章

  • CPU(中央处理器)和GPU(图像处理器)的区别
    CPU(中央处理器)和GPU(图像处理器)的区别GPU和CPU是什么?CPU:中央处理器(英文CentralProcessingUnit)是一台计算机的运算核心和控制核心。CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPUGPU:英文全称Graphi......
  • 掌握Spring Boot 3中的全局异常处理:从入门到精通
    掌握SpringBoot3中的全局异常处理:从入门到精通在开发SpringBoot应用时,异常处理是一个不可忽视的重要环节。特别是当你的应用规模逐渐扩大,代码复杂度增加时,如何优雅地处理异常变得尤为重要。今天,我们就来深入探讨一下如何在SpringBoot3中实现全局异常处理。为什么需要全局异......
  • 稀疏迭代求解器无矩阵方法预处理器
    如何为无矩阵左侧的稀疏迭代方法(TFQMR、GMRES、CGS等)定义预处理器(SPILU、SPAI等)?我使用无矩阵A(使用LinearOperator和matvec)定义了Ax=b。因此,我没有创建矩阵A并将其保存在内存中。例如,在这种情况下,我如何构建SPILU预处理器?我在所有教程和示例中看到预处理器是使用矩阵L......
  • 第五讲:全局锁和表锁 :给表加个字段怎么有这么多阻碍?
    目录第五讲:全局锁和表锁:给表加个字段怎么有这么多阻碍?引言:锁的分类:全局锁场景:弊端:好处分析:回顾:提出问题:问题一:问题二:表级锁表锁:元数据锁(MDL)案例:变故发生:基于案列说问题:操作小结提问:官方:我的理解(片面了):深入:第五讲:全局锁和表锁:给表加个字段怎么有这么多阻碍?引言:​ 今天我要......
  • SpringBoot原理解析(二)- Spring Bean的生命周期以及后处理器和回调接口
    SpringBoot原理解析(二)-SpringBean的生命周期以及后处理器和回调接口文章目录SpringBoot原理解析(二)-SpringBean的生命周期以及后处理器和回调接口1.Bean的实例化阶段1.1.Bean实例化的基本流程1.2.Bean实例化图例1.3.实例化阶段的后处理器1.3.1.实例化阶段后处理器......
  • SwiftUI中全局EnvironmentObject的使用和注意事项,实现多界面共享数据
    SwiftUI的@EnvironmentObject是一个强大的工具,它允许你在多个视图之间共享数据(使用一个可观察对象)。当你有一个复杂的视图层次结构,并且需要在没有直接连接的视图之间共享相同的可观察对象时,它特别有用。创建ObservableObject协议类要使用环境对象,首先需要创建一个符合Obse......
  • 当值来自函数 python unittest 时,如何模拟全局变量
    我必须在python中模拟全局变量,但变量值来自另一个函数。当我导入文件时,这个函数正在运行,但我想要那里的模拟值。secrets.pyimporttracebackimportloggingimportboto3importosimportjsonlogger=logging.getLogger()logger.setLevel(logging.INFO)secret_......
  • 易优CMS模板标签global全局变量输出网站关键词
    【基础用法】标签:global描述:获取系统全局配置变量内容用法:{eyou:globalname='web_title'/}或者{$eyou.global.web_title}文件:系统模板引擎属性:name=''变量名涉及表字段:请查阅网站后台的【设置】-【基本信息】web_status关闭网站web_name网站名称web_logo网站LOGO......
  • 处理器SDK RTOS (PSDK RTOS)
    处理器SDKRTOS(PSDKRTOS)1.PSDKRTOS方框图PSDKRTOS方框图,如图7-65所示。图7-65PSDKRTOS方框图2.硬件1)EvaluationModule(EVM):Ti推出的硬件开发板。用于快速原型设计和新产品开发,可以帮助开发人员在短时间内实现复杂的嵌入式系统功能。2)JTAG:调试执行,通过JTAG无引......
  • 《RISC-V CPU 处理器设计(上)》第2章——RISC-V架构之魂
    2.1简单就是美——RISC-V架构的设计理念2.1.1无病一身轻——架构的篇幅    1.关于RISC-V架构的文档可以到此网址下载https://riscv.org/technical/specifications/。2.1.2能屈能伸——模块化的指令集     2.RISC-V架构相比其他成熟的商业架构,最大的不同......