• 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/

  • 相关阅读:
    邮箱整理
    C++ Primer Plus 6 笔记(1)
    MySQL的远程链接
    MySQL的安装和使用
    nginx的反向代理和负载均衡
    linux--配置开发环境 --Nginx篇
    linux--配置开发环境 --Apache篇
    Linux -- 运维
    Linux
    使用宝塔面板部署tp5网站
  • 原文地址:https://www.cnblogs.com/nwu-edu/p/9404023.html
Copyright © 2020-2023  润新知