SpringBoot项目中统一异常处理

本是古典 何须时尚 2022-12-13 04:12 198阅读 0赞

SpringBoot项目中统一异常处理

1. 创建状态码枚举类

  1. @Getter
  2. @NoArgsConstructor
  3. @AllArgsConstructor
  4. public enum StatusCode {
  5. OK(200, "成功"),
  6. USER_INFO_NOT_FOUND(404, "用户名不存在"),
  7. ;
  8. int code;
  9. String message;
  10. }

2.创建Exception类

  1. @NoArgsConstructor
  2. @AllArgsConstructor
  3. @Getter
  4. public class SamsException extends RuntimeException {
  5. private StatusCode statusCode;
  6. }

3.创建Controller层返回对象

  1. @Data
  2. public class Result {
  3. private Boolean flag; //是否成功
  4. private Integer code; //返回状态码
  5. private String message; //返回信息
  6. private Object data; //返回数据
  7. public Result(Boolean flag, StatusCode statusCode) {
  8. this.flag = flag;
  9. this.code = statusCode.getCode();
  10. this.message = statusCode.getMessage();
  11. }
  12. public Result(Boolean flag, StatusCode statusCode, Object data) {
  13. this.flag = flag;
  14. this.code = statusCode.getCode();
  15. this.message = statusCode.getMessage();
  16. this.data = data;
  17. }
  18. }

4. 创建通知异常处理类

  1. /**
  2. * 通用异常处理
  3. */
  4. @ControllerAdvice
  5. public class CommonExceptionHandler {
  6. @ResponseBody
  7. @ExceptionHandler(SamsException.class)
  8. public Result handlerException(SamsException e) {
  9. return new Result(false, e.getStatusCode());
  10. }
  11. }

发表评论

表情:
评论列表 (有 0 条评论,198人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springboot异常全局统一处理

    [个人博客][Link 1] 日常后端业务开发中,在提供接口服务时会遇到各种异常处理,通常涉及到参数校验异常、自定义异常以及一些不可预知的异常等等。下面就来说一下在sprin