当前位置: 首页 > article >正文

干货 | SpringBoot 全局异常拦截到底怎么用(附完整可复制代码)

一、前言开发接口最烦啥代码一报错前端直接抛一堆 500 红码、后台堆栈日志满天飞、用户看页面一脸懵。要是每个接口都手动 try-catch代码又臭又长、冗余到想吐。Spring 全局异常拦截就是用来根治这个问题的一次配置、全局生效所有接口报错统一抓、统一格式化、统一返回友好提示干净又专业。二、核心原理大白话用 Spring 自带注解RestControllerAdviceExceptionHandler拦截所有 Controller 抛出来的异常不改动业务代码自动接管报错把乱七八糟的异常转成前端能看懂的标准 JSON三、第一步先搞统一返回体项目通用/** * 全局统一返回结果 */ public class ResultT { private Integer code; // 状态码 private String msg; // 提示信息 private T data; // 返回数据 // 无参构造 public Result() { } // 全参构造 public Result(Integer code, String msg, T data) { this.code code; this.msg msg; this.data data; } // 成功只返回数据 public static T ResultT success(T data) { ResultT r new Result(); r.setCode(200); r.setMsg(操作成功); r.setData(data); return r; } // 成功自定义提示信息 数据 public static T ResultT success(String msg, T data) { ResultT r new Result(); r.setCode(200); r.setMsg(msg); r.setData(data); return r; } // 失败 public static T ResultT error(Integer code, String msg) { ResultT r new Result(); r.setCode(code); r.setMsg(msg); return r; } // 默认失败 public static T ResultT error(String msg) { return error(500, msg); } // GETTER SETTER public Integer getCode() { return code; } public void setCode(Integer code) { this.code code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg msg; } public T getData() { return data; } public void setData(T data) { this.data data; } Override public String toString() { return Result{ code code , msg msg \ , data data }; } }四、第二步自定义业务异常自己抛自己用/** * 自定义业务异常 */ public class BizException extends RuntimeException{ private Integer code; public BizException(Integer code,String msg){ super(msg); this.code code; } public Integer getCode() { return code; } }五、核心重头戏全局异常拦截器直接复制用import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; /** * 全局统一异常处理 */ RestControllerAdvice public class GlobalExceptionHandler { // 1.捕获自己手动抛的业务异常 ExceptionHandler(BizException.class) public Result? bizException(BizException e){ return Result.error(e.getCode(),e.getMessage()); } // 2.捕获参数校验异常比如必填为空、格式错误 ExceptionHandler(MethodArgumentValidException.class) public Result? validException(MethodArgumentValidException e){ return Result.error(400,参数异常e.getMessage()); } // 3.兜底所有没接住的未知异常 ExceptionHandler(Exception.class) public Result? allException(Exception e){ // 线上不要把原生错误抛给前端只给友好提示 e.printStackTrace(); //后台打印日志排错 return Result.error(500,服务器繁忙请稍后重试); } }六、业务代码怎么用超简单1. 正常判断直接抛异常if(user null){ throw new BizException(4001,用户不存在请重新登录); }2. 不用写任何 try-catch异常自动被全局拦截 → 自动封装成标准 JSON 返回前端。前端永远收到干净格式{ code: 4001, msg: 用户不存在请重新登录, data: null }七、到底解决了啥业务代码干净再也不用到处写 try-catch 套娃报错统一规范前端不用对接乱七八糟错误格式安全原生 Java 异常堆栈不暴露给前端防止泄露信息排错方便后台统一打印日志定位问题超快八、文末总结全局异常拦截说白了就是把项目里所有接口报错全部抓进一个地方统一收拾。自己业务报错就抛自定义异常系统报错就兜底隐藏细节。配置一次整个项目永久生效代码清爽、接口规范、面试还能说懂架构新手必学必用。

相关文章:

干货 | SpringBoot 全局异常拦截到底怎么用(附完整可复制代码)

一、前言 开发接口最烦啥?代码一报错,前端直接抛一堆 500 红码、后台堆栈日志满天飞、用户看页面一脸懵。要是每个接口都手动 try-catch,代码又臭又长、冗余到想吐。 Spring 全局异常拦截就是用来根治这个问题的:一次配置、全局…...

OneDrive顽固残留?高效彻底卸载指南:释放系统资源的实用方案

OneDrive顽固残留?高效彻底卸载指南:释放系统资源的实用方案 【免费下载链接】OneDrive-Uninstaller Batch script to completely uninstall OneDrive in Windows 10 项目地址: https://gitcode.com/gh_mirrors/on/OneDrive-Uninstaller 问题解析…...

NoSleep防休眠工具:彻底解决Windows系统意外休眠的终极方案

NoSleep防休眠工具:彻底解决Windows系统意外休眠的终极方案 【免费下载链接】NoSleep Lightweight Windows utility to prevent screen locking 项目地址: https://gitcode.com/gh_mirrors/nos/NoSleep 在数字化办公时代,电脑意外休眠已成为影响工…...

Claude Code凯神实战指南-第六章:Plugins全攻略——一键安装海量扩展,还能自己造轮子

第六章:Plugins全攻略——一键安装海量扩展,还能自己造轮子 📖 项目简介 这是由凯神精心打造的一套完整的 Claude Code 实战教程系列,从零基础环境安装,到企业级安全合规,全面系统地覆盖 Claude Code 的所…...

ai一键生成node.js环境配置教程,快马平台助你跳过繁琐安装步骤

最近在学习Node.js开发时,发现环境配置这个入门步骤对新手来说确实有点麻烦。不同操作系统下的安装方式差异大,版本选择也让人纠结。好在发现了InsCode(快马)平台的AI辅助开发功能,可以自动生成完整的配置教程,分享下我的使用体验…...

嘉为蓝鲸应用发布中心V6.3发布:流自融合、安全提效,全方位护航企业级应用发布

前言 嘉为蓝鲸应用发布中心鲸舟是企业用于实现一体化应用投产发布的基础设施,能够对应用发布进行统一管理和自动化执行。平台支持单体/微服务应用发布、分布式/容器化发布、应用全生命周期管理,以及蓝绿/金丝雀发布等多种发布场景。发布总览 2026年春季&…...

实战指南:基于快马平台为openclaw社区开发精华帖子系统

实战指南:基于快马平台为openclaw社区开发精华帖子系统 最近在帮openclaw中文社区官方开发一个精华帖子评选与展示系统,整个过程让我深刻体会到如何用InsCode(快马)平台快速实现生产级功能。这个系统需要满足社区对优质内容筛选和展示的核心需求&#x…...

如何构建一个高效的知识/信息资源管理体系?启雀的功能优势介绍

面对海量的数字信息,构建一个高效的知识/信息资源管理体系至关重要。这不仅能提升个人和团队的工作效率,还能将零散的信息转化为有价值的组织智慧。高效知识管理方法一个完整的知识管理流程通常包含收集、整理、沉淀和应用四个环节。你可以结合以下方法来…...

星光护航 家校同行 多方联合点亮4·2世界孤独症日公益之光

2026年4月2日第19个世界孤独症关注日来临之际,联合国官宣年度主题Autism and Humanity — Every Life Has Value(孤独症与人类 — 每一个生命都弥足珍贵),中国同步确定“提质全生涯服务供给,聚焦孤独症家庭支持与成年服…...

终极抖音批量下载指南:5分钟搞定无水印视频批量采集

终极抖音批量下载指南:5分钟搞定无水印视频批量采集 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...

Lambda 表达式 —— Java 8 的函数式编程利器

同学们好,今天我们学习 Java 中一个非常重要的特性 —— Lambda 表达式。它让 Java 代码变得更简洁、更灵活,是学习 Stream API、函数式编程的基础。一、为什么要引入 Lambda?先看一个例子:我们想创建一个新线程,在控制…...

漏洞挖掘变现指南:合法渠道\+赏金技巧,新手也能月入过万

很多新手学习漏洞挖掘,不仅是为了提升技术,更是为了实现“技术变现”——通过提交漏洞获取赏金、兼职接单,这也是网络安全领域的核心福利之一。但变现的前提是“合法合规”,本文拆解漏洞挖掘的合法变现渠道、赏金提升技巧、避坑指…...

CUB-200-2011 鸟类数据集的训练及应用 鸟类识别 适用于细粒度分类研究,多种计算机视觉任务

CUB-200-2011 鸟类数据集的训练及应用 鸟类识别 文章目录🧰 一、环境搭建1. 安装 Python 虚拟环境(推荐使用 Conda)2. 安装必要依赖📁 二、数据集结构与准备3. 构建 PyTorch Dataset🏋️‍♂️ 三、构建模型并训练1. 使…...

Product Hunt 每日热榜 | 2026-04-04

1. Google Gemma 4 标语:谷歌迄今为止最智能的开放模型 介绍:Gemma 4 是谷歌 DeepMind 最强大的开放模型系列,具备了先进的推理能力、跨模态处理和灵活的工作流程。它经过优化,适用于从移动设备到显卡的各种平台,让开…...

批量新员工入职培训怎么做?行政/销售/技术等5大核心岗位培训重点拆解

年后复工、校招季、业务扩招,一次入职几十上百人,覆盖销售、客服、运维、行政、技术、生产等多个岗位。这是企业培训中非常普遍、甚至是常态的管理场景,尤其在中大型企业、连锁企业、制造型企业、互联网/科技公司里,同时管理多岗位…...

# 005、游戏控制自动化基础:PyAutoGUI模拟键鼠与动作时序设计

昨天深夜调试一个自动打怪脚本时,遇到了诡异的问题——角色总是在释放技能后卡住不动。盯着屏幕看了半小时才发现,原来技能释放动画还没结束,脚本就急吼吼地点击了移动指令,两个事件堆在一起把游戏客户端搞懵了。这种时序问题在游戏自动化里太常见了,今天咱们就聊聊怎么用…...

直线导轨的精度对设备运行稳定性与寿命的影响

直线导轨作为机械传动与定位系统的核心部件,广泛应用于数控机床、自动化设备、3D打印机等领域。其精度等级直接影响设备的运动控制、加工质量及运行效率。从普通工业设备到高精密数控机床,不同精度等级的导轨通过控制摩擦、振动与位移偏差,成…...

2026年6款AI驱动的人力系统测评:谁更适合科技企业

科技企业的人力系统选型,最怕两件事:一是业务长得太快,招聘、组织、薪酬、考勤各自上系统却连不起来;二是管理想用AI提效,最后只落成了几个零散功能。红海云、Moka、肯耐珂萨 KNX、钉钉、飞书、Workday覆盖了从招聘专精…...

BsMax:让3D艺术家无缝切换Blender的专业级工具集

BsMax:让3D艺术家无缝切换Blender的专业级工具集 【免费下载链接】BsMax BsMax Blender Addon (UI simulator/ Modeling/ Rigg & Animation/ Render Tools and ... 项目地址: https://gitcode.com/gh_mirrors/bs/BsMax 你是否曾经因为Blender的操作习惯与…...

Topit:让Mac窗口像便利贴一样随手可贴,你的多任务效率神器

Topit:让Mac窗口像便利贴一样随手可贴,你的多任务效率神器 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 还在为Mac上频繁切换窗口而打…...

MouseClick:解放双手的跨平台鼠标自动化神器,告别重复点击的烦恼

MouseClick:解放双手的跨平台鼠标自动化神器,告别重复点击的烦恼 【免费下载链接】MouseClick 🖱️ MouseClick 🖱️ 是一款功能强大的鼠标连点器和管理工具,采用 QT Widget 开发 ,具备跨平台兼容性 。软件…...

3步实现跨平台文献管理效率跃升:WPS-Zotero开源工具深度应用指南

3步实现跨平台文献管理效率跃升:WPS-Zotero开源工具深度应用指南 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 在学术研究的数字化工作流中,如何解…...

ComfyUI-Manager下载加速三阶段优化方案:从单线程到多线程的300%性能提升

ComfyUI-Manager下载加速三阶段优化方案:从单线程到多线程的300%性能提升 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and en…...

如何深度定制WSA环境:Magisk与Google服务集成完全指南

如何深度定制WSA环境:Magisk与Google服务集成完全指南 【免费下载链接】WSA-Script Integrate Magisk root and Google Apps into WSA (Windows Subsystem for Android) with GitHub Actions 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Script 你是否…...

大模型学习指南:小白程序员必备,收藏这份2026年开源大模型体系与实战教程!

大模型学习指南:小白程序员必备,收藏这份2026年开源大模型体系与实战教程! 本文全面介绍了2026年主流开源大模型体系(如Llama、Qwen、Mistral等),解析了Prefix Decoder、Causal Decoder、Encoder-Decoder的…...

小白程序员必收藏!Agent工程入门指南:轻松上手大模型,抓住AI时代红利

小白程序员必收藏!Agent工程入门指南:轻松上手大模型,抓住AI时代红利 本文介绍了Agent工程的基础知识和大模型学习的核心逻辑,强调了从小白到掌握Agent和大模型的关键在于平衡AI的自主决策能力与流程规范。文章还提供了一份详细的…...

etcd 显示连接失败

文章目录一、查看服务运行情况二、查看具体日志1. 错误原因2. 解决方法方案 1:修改 etcd 配置文件方案 2:直接修改 systemd 服务文件方案 3:临时测试(不推荐生产环境)3. 验证是否解决4. 其他注意事项配置一致性&#x…...

隔离放大器:信号传输的精准隔离与保真核心

信号精准传输与安全隔离是电子系统稳定运行的关键,工业监测、医疗设备、电力系统、新能源转换等领域常面临信号微弱、电磁干扰、高低压共存等挑战。隔离放大器凭借高共模抑制比、强绝缘隔离、低噪声放大等核心优势,破解了传统放大器信号失真、安全隐患等…...

AI安全危局:五大实战策略构建企业级防护壁垒

AI安全危局:五大实战策略构建企业级防护壁垒 本文深入解读AI系统安全的五大最佳实践,涵盖治理框架、数据保护、模型防御、供应链安全及持续监控,为企业提供构建纵深防护体系的实战指南。 随着人工智能技术从实验室走向千行百业,AI…...

基于特高压张北柔性直流输电四端系统真实参数的PSCAD仿真平台精准搭建方法与技术要点解析

张北柔直工程四端pscad模型,实际参数搭建昨天啃了半周的张北柔直四端可研PSCAD用户手册补录参数的间隙,把自己攒的模块线搭顺,终于出了第一波接近稳态的交流母线波形——连误差都卡在可研给的0.5kV内,敲敲键盘,得捋捋这…...