Springboot异常处理

Springboot异常处理

Scroll Down

Springboot异常处理

特定异常(404,500)

  1. 在resources/templates下面创建一个erro文件夹并创建404.html和500.html,springboot会自动根据错误类型返回resources/templates/error下面对应的html页面

image-20200704183712384

image-20200704183933951

自定义异常处理

  1. 创建异常监听器

image-20200704184058152

/**
 * @author ChengSukai
 * @date 2020/7/4 5:33 下午
 * 定义拦截器,拦截所有的异常
 */
@ControllerAdvice
public class ControllerExceptionHandler {

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @ExceptionHandler(Exception.class)
    public ModelAndView exceptionHander(HttpServletRequest request,Exception e){
        logger.error("Request URL: {},Exception : {}",request.getRequestURI(),e);
        ModelAndView mv = new ModelAndView();
        mv.addObject("url",request.getRequestURI());
        mv.addObject("exception",e);
        mv.setViewName("error/error");
        return mv;
    }
  • ControllerAdvice表示该拦截器会拦截所有controller中爆出的异常
  • ExceptionHandler修饰的方法表示RuntimeExcepton以及其子类都会进入该错误处理逻辑中

image-20200704184500547