zoukankan      html  css  js  c++  java
  • springboot学习(五) 全局异常处理

    创建全局异常处理

     1 /**
     2  *  全局异常配置管理
     3  */
     4 @ControllerAdvice
     5 public class GlobalExceptionConfig extends ResponseEntityExceptionHandler {
     6 
     7     public static final String DEFAULT_ERROR_VIEW = "error/error";
     8 
     9     @ExceptionHandler(value = Exception.class)
    10     public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
    11         ModelAndView mav = new ModelAndView();
    12         mav.addObject("exception", e);
    13         mav.addObject("url", req.getRequestURL());
    14         mav.setViewName(DEFAULT_ERROR_VIEW);
    15         return mav;
    16     }
    17 
    18     @ExceptionHandler(value = JSONException.class)
    19     @ResponseBody
    20     public String defaultJsonErrorHandler(HttpServletRequest req, Exception e) throws Exception {
    21         return "返回指定格式的数据";
    22     }
    23 
    24     /**
    25      *  获取错误的状态码
    26      * @param request
    27      * @return
    28      */
    29     private HttpStatus getStatus(HttpServletRequest request) {
    30         Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
    31         if (statusCode == null) {
    32             return HttpStatus.INTERNAL_SERVER_ERROR;
    33         }
    34         return HttpStatus.valueOf(statusCode);
    35     }

      在全局异常类中,设置了2个ExceptionHandler(1个作为页面跳转,一个作为json数据返回),其中的JSONException是我们自己定义的一个异常类,目的就是为了标识这种异常类型返回的数据为json,而不是页面跳转。

  • 相关阅读:
    Office2007界面风格的绿色软件针式个人知识库管理系统[V3.5]
    Mentor工具简介
    Xilinx网站资源导读
    FPGA时钟问题的探讨汇总
    FPGA中竞争冒险问题的研究
    一些IC前端设计工具
    SPI协议简介
    USB接口定义
    TTL与CMOS电平的区别
    Synopsys工具简介
  • 原文地址:https://www.cnblogs.com/origalom/p/7587950.html
Copyright © 2011-2022 走看看