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/

  • 相关阅读:
    UVa 1151 Buy or Build【最小生成树】
    UVa 216 Getting in Line【枚举排列】
    UVa 729 The Hamming Distance Problem【枚举排列】
    HDU 5214 Movie【贪心】
    HDU 5223 GCD
    POJ 1144 Network【割顶】
    UVa 11025 The broken pedometer【枚举子集】
    HDU 2515 Yanghee 的算术【找规律】
    Java基本语法
    Java环境变量,jdk和jre的区别,面向对象语言编程
  • 原文地址:https://www.cnblogs.com/nwu-edu/p/9404023.html
Copyright © 2011-2022 走看看