统一异常处理
1.开发方式演变
a.传统方式开发 基于javaweb方式开发
项目业务代码 + view 写在一个项目中
业务代码+view(jsp、thymeleaf、freemark)
b.前后端分离开发 前后端分离 天下
前端系统(Vue)
ajax 异步请求
后端系统(java) 接口 controller ===> 传统web方式 /user/findById?id=21 =====> GET POST PUT DELETE GET /users users/001(RestFul API)
2.springboot异常处理
**异常处理: **
当出现异常改如何处理====>当controller中方法在执行过程中如果出现异常,我们应该如何处理异常这种方式 称之为异常处理
3.传统方式开发异常处理
具体步骤
- 创建一个类用于处理异常
- 这个类记得加
@Component
注解,把它实例化到spring容器中 - 该类继承
HandlerExceptionResolver
类,重写他的resolveExceptions
方法
resolveExceptions
方法中的参数
resolveException:当控制器中任意一个方法出现异常时,如果该控制器的方法没有自己的异常处理(try...catch),则会进入当前方法
注意:在异常处理这个方法中,完成自定义异常处理
参数一:request 当前请求对象
参数二:response 当前请求对应响应对象
参数三:handler 当前出现错误的方法对象
参数四:ex 出现异常的异常对象
返回值:ModelAndView 模型和视图
3.1用法
自定义异常
controller
抛出异常
异常处理类
4.前后端分离开发异常处理
可以自定义处理我们自己定义的异常
具体步骤
- 创建一个类用于处理异常
- 这个类记得加
@ControllerAdvice
注解
4.1具体用法
自定义异常
controller
抛出异常
异常处理类