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,而不是页面跳转。

  • 相关阅读:
    递归实现全排列问题
    LeetCode
    LeetCode
    连续子元素最大和
    简单模板view调用
    如何清除PHP中不需要的Layout模板
    Model中设置表单验证方法
    数据修改操作
    MVC模式tp框架四中路由形式
    zend Framework的MVC模式的搭建
  • 原文地址:https://www.cnblogs.com/origalom/p/7587950.html
Copyright © 2011-2022 走看看