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的全局异常处理



浙公网安备 33010602011771号