Spring MVC系列(12)-异常处理流程源码分析
前言
首先写一个接口,会抛出算术异常ArithmeticException。
@GetMapping("/testException")
@ResponseBody
public String testException() {
int i= 4/0;
return "testException";
}
浏览器访问,发现返回了一个页面,但是是说500异常,找不到/error访问路径。

使用PostMan访问,发现返回了Json数据。

那么Spring MVC中时如何进行异常处理的呢?
核心类简介
spring-framework
spring原生框架提供了核心的异常处理机制。
HandlerExceptionResolver
HandlerExceptionResolver接口,控制器异常解析器,对处理映射器或执行期间抛出的异常进行解析处理。
其定义了一个解析异常方法,尝试解决执行期间抛出的给定异常,返回一个ModelAndView对象,然后可以通过ModelAndView 返回异常页面。
public interface HandlerExceptionResolver {
ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex);
}
在spring-framework中,HandlerExceptionResolver有这些实现类。