news 2026/8/31 4:11:44

【Spring Boot】统一异常处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Spring Boot】统一异常处理
目录*统一异常处理* * 一. 概念 * 二. 全局异常处理 * 三. 处理特定异常统一异常处理------### 一. 概念其实统一异常是运用了AOP(对某一类事情的集中处理)的思维,简单概括就是在我们进行前后端数据交互的时候,抛出的任何的异常都能够自动捕获然后抛出,不用程序员在敲代码时格外关注try catch语句。其实统一异常处理非常简单,在实现时要加入类注解@ControllerAdvice(这是一个表示控制通知的注解,在接下来的统一异常处理也要运用到),并且有一点与统一数据返回不同的是,统一异常处理需要加上类注解@ResponseBody来确认返回的数据类型,然后在类中要进行捕获异常的方法上加上注解@ExceptionHandle即可。### 二. 全局异常处理处理全局异常代码如下: import com.example.demo.model.Result; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @ControllerAdvice @ResponseBody public class ErrorAdvice { /** * 全局异常处理 */ @ExceptionHandler public Object handler(Exception e) { return Result.fail(e.getMessage()); } } 这样程序抛出异常的时候,就会被该异常处理方法所捕获,并且返回统一异常处理的结果(JSON格式)!### 三. 处理特定异常处理特定异常代码如下: import com.example.demo.model.Result; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; @ResponseBody @ControllerAdvice public class ErrorAdvice { @ExceptionHandler public Object handler(Exception e) { return Result.fail(e.getMessage()); } @ExceptionHandler public Object handler(NullPointerException e) { return Result.fail(“发?NullPointerException:”+e.getMessage()); } @ExceptionHandler public Object handler(ArithmeticException e) { return Result.fail(“发?ArithmeticException:”+e.getMessage()); } } 当有多个异常通知时,匹配顺序为当前类及其类向上依次匹配进行统一异常处理的目的就是在异常发生时,尽可能地减少破坏,妥善处理,而不去影响其他部分程序的运行
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 4:09:25

JavaScript时间函数全解析:Date对象、时间戳与时区处理实践

时间函数是前端开发里最容易被低估的基础模块。倒计时、订单超时、日志时间、数据报表,几乎每个项目都逃不过时间处理。很多人能写出new Date(),但一遇到时区、格式化、跨月计算就开始反复试错。下面以 JavaScript 的Date对象为主线,把时间函…

作者头像 李华
网站建设 2026/8/31 4:08:12

JavaScript箭头函数与this绑定机制详解,彻底解决this指向问题

1. 背景与核心概念先问一个很实际的问题:你在写 JavaScript 的时候,有没有被this搞晕过?明明在对象方法里调用this.name,结果却拿到undefined;把函数传给事件监听器,this却指向了全局对象;用set…

作者头像 李华
网站建设 2026/8/31 4:05:27

【报表查询】.NET开源ORM框架 SqlSugar 系列

文章目录* 前言* 实践一、按月统计没有为0* 实践二、 统计某月每天的数量* 实践三、对象和表随意JOIN* 实践四、 List和表随意JOIN* 实践五、大数据处理* 实践六、每10分钟统计Count* 实践七、 每个ID都要对应时间* 总结* * 前言–在我们实际开发场景中,报表是最常见…

作者头像 李华
网站建设 2026/8/31 4:00:54

化学药物稳定性研究全攻略:从试验设计到控制策略

化学药物稳定性研究,很多人把它当作注册申报里的一个“必交模块”,实际上它是贯穿药物研发、生产、放行、贮存、运输全链条的质量底线。周立春老师在药品标准、质量控制领域的实践经验非常丰富,他在化学药物稳定性研究上的观点,归…

作者头像 李华
网站建设 2026/8/31 4:00:25

开源AI助手接口模块开发:从双通道并发到故障隔离的工程实践

开源AI助手项目做到一定阶段,基本都会遇到同一个问题:不能只靠本地代码把功能堆完,还得把第三方接口模块接进来,让助手能调外部能力。枫云AI这类的开源助手,在能力扩展时通常会做一层“接口模块”来解耦。这里以“双龙…

作者头像 李华