在项目开发中,框架层都需要定义自己的异常体系,那么用springboot进行web开发,如何捕获这些异常并处理呢?
我总结了发生异常的点:
1,自身业务抛出的异常
2,参数错误
3,404错误
1,继承DefaultErrorAttributes,重写getErrorAttributes方法,然后转换成你想要的数据格式,此种方式能够捕获所有异常。
2,@ControllerAdvice 和 @ExceptionHandler注解配合使用,能够捕获Controller层异常。
springboot抛出异常流程:
前端有一个url请求,DispatcherServlet来处理请求(doDispatch),执行业务方法,当有异常抛出,重定向到路径为"/error"的Controller来处理,类名为:BasicErrorController。可以修改里面的方法,改变输出格式。