zoukankan      html  css  js  c++  java
  • 统一异常处理

    统一异常处理

    我们想让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要统一异常处理

    创建统一异常处理器

    @ControllerAdvice
    @Slf4j
    public class GlobalExceptionHandler {
        //添加一个注解 ExceptionHandler
        @ExceptionHandler({Exception.class})
        @ResponseBody
        public R error(Exception e){
            e.printStackTrace();
            return R.error().message("执行了全局异常");
        }
        //自定义异常
        @ExceptionHandler({OnlineException.class})
        @ResponseBody
        public R error(OnlineException e){
            log.error(e.getMessage());
            e.printStackTrace();
            return R.error().code(e.getCode()).message(e.getMsg());
        }
    }
    

    测试

    image-20201203135441703

    自定义异常

    创建自定义异常类

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class OnlineException extends RuntimeException {
        @ApiModelProperty(value = "状态码")
        private Integer code;
        private String msg;
        
    }
    

    业务中需要的位置抛出OnlineException

    try {
        int a = 10/0;
    }catch(Exception e) {
        throw new OnlineException(20001,"出现自定义异常");
    }
    

    添加异常处理方法

    OnlineExceptionHandler.java中添加

    @ExceptionHandler(OnlineException.class)
    @ResponseBody
    public R error(OnlineException e){
        e.printStackTrace();
        return R.error().message(e.getMsg()).code(e.getCode());
    }
    
  • 相关阅读:
    信息系统项目管理师沟通的四个好习惯
    Android 线程
    替换exe程序图标DLL
    Python 邮件类
    android自适应屏幕方向和大小
    sqlserver 存储过程
    FinalData 数据恢复工具[绿色版]
    Python Python 正则 取中括号值
    在Button任意位置加图片效果
    android GPRS
  • 原文地址:https://www.cnblogs.com/Courage129/p/14079176.html
Copyright © 2011-2022 走看看