zoukankan      html  css  js  c++  java
  • 自定义抛出异常

    可以先定义一个枚举类

    import lombok.AllArgsConstructor;
    import lombok.Getter;
    import lombok.NoArgsConstructor;
    
    @Getter
    @NoArgsConstructor
    @AllArgsConstructor
    public enum ExceptionEnum {
    
        PRICE_CANNOT_BE_NULL(400,"价格不能为空!"),
        CATEGORY_NOT_FOUND(404,"商品分类没查到"),
        ;
        private int code;
        private String msg;
    }

    然后定义一个异常继承EuntimeException

    import lombok.AllArgsConstructor;
    import lombok.Getter;
    import lombok.NoArgsConstructor;
    
    @NoArgsConstructor
    @AllArgsConstructor
    @Getter
    public class LyException extends RuntimeException{
    
        private ExceptionEnum exceptionEnum;
    }

    然后在controller层做拦截

    import org.springframework.http.HttpStatus;
    import org.springframework.http.ResponseEntity;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    
    @ControllerAdvice
    public class CommonExceptionHandler {
    
        @ExceptionHandler(RuntimeException.class)
        public ResponseEntity<ExceptionResult> handleException(LyException e){
            ExceptionEnum em = e.getExceptionEnum();
            return ResponseEntity.status(em.getCode()).body(new ExceptionResult(e.getExceptionEnum()));
        }
    }

    即可

    也可以加上下行参数实体

    import lombok.Data;
    
    @Data
    public class ExceptionResult {
        private int status;
        private String message;
        private Long timestamp;
    
        public ExceptionResult(ExceptionEnum em){
            this.status = em.getCode();
            this.message = em.getMsg();
            this.timestamp = System.currentTimeMillis();
        }
    }
  • 相关阅读:
    mysql索引数据结构
    29. 使用参数化编写自动化测试用例
    28. Python编写自动化测试用例
    27. Unittest单元测试框架的介绍与使用
    26. 什么是单元测试
    25. Postman的使用
    24. 接口测试的意义
    23. requests安装与使用
    22. 如何编写接口文档
    21. Blog接口开发
  • 原文地址:https://www.cnblogs.com/zhengyuanyuan/p/10911591.html
Copyright © 2011-2022 走看看