zoukankan      html  css  js  c++  java
  • springboot中添加全局异常捕获类

    前几天工作中遇到一个项目,前后端分离的,作为后端开发专注开发接口。对于程序中出现的异常如果不进行处理,将报错信息直接返回到前端十=时不优雅的,因此需要对异常进行捕获和处理,但是每个接口都单独处理异常则显得代码十分臃肿,因此写了个异常捕获类对全局出现的异常进行统一处理。

    1.如果程序中出现异常如下:

    @RestController
    public class HelloController {
    
        @RequestMapping("/hello")
        public String hello(String idNum) {
             
           throw new BusinessException("抛出业务异常");
            
        }
    }

    2.全局异常处理类:

     //@ControllerAdvice 该注解定义全局异常处理类
    @ControllerAdvice
    public class GlobalExceptionHandler {
    
        //@ExceptionHandler 该注解声明异常处理方法
        //value=BusinessException.classb表示处理抛出的BusinessException异常
        @ExceptionHandler(value = BusinessException.class) 
        public ReturnResult defaultErrorHandler(HttpServletRequest req, Exception e) {
            ReturnResult result = new ReturnResult(); //出现异常后返回到前端的信息
           result.setCode("-1");
           result.setMsg("出现了业务异常");
           //打印异常信息
          logger.error("调用失败", e);
           
          return result;
        }
    }

    3.访问/hello资源时被2中捕获BusinessException异常的类捕获,并返回前端数据{"code":"-1", "message":"出现业务异常"},   日志打印信息如下:

  • 相关阅读:
    JS运算符
    JS基础
    0507-弹性盒子
    0506css3(2D、3D)动画
    CSS3边框
    0503-格式与布局
    0502-边框边界
    0502-其他html标签
    0428-专题块状元素
    mysql 数据库学习
  • 原文地址:https://www.cnblogs.com/fangyan1994/p/12178709.html
Copyright © 2011-2022 走看看