SpringBoot全局异常处理
什么是全局异常处理
用于统一捕获代码运转过程中的各种异常
为什么使用全局异常处理
不用强制写try-catch,由全局异常处理器统一捕获处理。
自定义异常,不能直接返回给客户端,客户端看不懂异常信息,只能全局异常捕获
Validator参数校验器,参数校验不通过会抛异常,但是无法通过try-catch语句捕获,只能使用全局异常处理器。
异常发生阶段分类图
如何使用
1.第一步自定义异常处理器类#
搭配使用即可捕获拦截器、参数绑定(参数解析、参数转换、参数校验)、Controller、返回值处理等抛出的异常
组合注解@RestControllerAdvice
@ControllerAdvice
Controller增强器,给Controller层添加统一的操作或处理
@ResponseBody
返回值自动为json格式
2.第二步定义方法指定要捕获的异常以及处理异常后的统一返回值与Http响应码 #
@ExceptionHandler
@ExceptionHandler,指定捕获Controller中抛出的指定类型的异常
@ResponseStatus
用于指定捕获异常后响应的Http状态码
3.具体使用流程#
定义exception包用于存储全局异常处理类
配合约束注解实现异常捕获
{
"code": 0,
"msg": "手机号格式错误",
"data": "188364236aaaa87"
}
面试题
1.如何使用全局异常处理?#
java 异常体系
Spring的全局异常处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了