zoukankan      html  css  js  c++  java
  • Springboot03-异常处理

    springboot默认异常处理

    Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并然后返回一个固定的错误页面

    统一异常处理

    • 创建全局异常处理类
    @ControllerAdvice
    class GlobalExceptionHandler {
    
        public static final String DEFAULT_ERROR_VIEW = "error";
    
        @ExceptionHandler(value = Exception.class)
        public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
            ModelAndView mav = new ModelAndView();
            mav.addObject("exception", e);
            mav.addObject("url", req.getRequestURL());
            mav.setViewName(DEFAULT_ERROR_VIEW);
            return mav;
        }
    
    }
    

    note:

    1. @ControllerAdvice:标记在类上,定义该类为统一的异常处理类
    2. @ExceptionHandler: 标记在方法上,用来定义该方法针对的异常类型
    3. DEFAULT_ERROR_VIEW:指定返回的错误页面
    4. excpetion:返回给页面的错误异常信息
    5. url:返回给页面的请求url信息
    • 自定义全局异常处理页面error.html
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8" />
        <title>统一异常处理</title>
    </head>
    <body>
        <h1>Error Handler</h1>
        <div th:text="${url}"></div>上
        <div th:text="${exception.message}"></div>
    </body>
    </html>
    
    • 支持restful API
      在方法上增加@ResponseMapping即可实现
    @ControllerAdvice
    public class GlobalExceptionHandler {
    
        @ExceptionHandler(value = MyException.class)
        @ResponseBody
        public ErrorInfo<String> jsonErrorHandler(HttpServletRequest req, MyException e) throws Exception {
            ErrorInfo<String> r = new ErrorInfo<>();
            r.setMessage(e.getMessage());
            r.setCode(ErrorInfo.ERROR);
            r.setData("Some Data");
            r.setUrl(req.getRequestURL().toString());
            return r;
        }
    }
    

    引用:
    程序员DD:http://blog.didispace.com/springbootexception/

  • 相关阅读:
    Python 魔法方法
    使用PHP7来批量更新MangoDB数据
    git 小乌龟安装教程
    webpack初学者(1)
    移动端与PC端的触屏事件
    解决onclick事件的300ms延时问题
    尺寸单位em,rem,vh,vw
    ngRoute 与ui.router区别
    angular.js的依赖注入解析
    ionic的基础学习(第一篇)
  • 原文地址:https://www.cnblogs.com/nwu-edu/p/9404023.html
Copyright © 2011-2022 走看看