统一的异常处理、结果返回

61 阅读1分钟

Lombok的GitHub地址

统一结果返回
通用的响应对象
public class Result<T> {
    private Integer code;
    private String msg;
    private T data;
    public static <T> Result<T> success() {
        Result<T> result = new Result<T>();
        result.code = StatusEnum.SUCCESS.code;
        return result;
    }

    public static <T> Result<T> success(T object) {
        Result<T> result = new Result<T>();
        result.data = object;
        result.code = StatusEnum.SUCCESS.code;
        return result;
    }

    public static <T> Result<T> error(String msg) {
        Result result = new Result();
        result.msg = msg;
        result.code = StatusEnum.FAIL.code;
        return result;
    }
}
响应状态码枚举
public enum StatusEnum {
    SUCCESS(200 ,"请求处理成功"),
    FAIL(500 ,"失败");

    public final Integer code;

    public final String message;

    StatusEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}
##### 统一异常处理
全局异常处理器
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {

    @ExceptionHandler
    public Result exceptionHandler(BaseException ex) {
        log.error("异常信息:{}", ex.getMessage());
        return Result.error(ex.getMessage());
    }
    
}
继承自 RuntimeException 的异常类
public class BaseException extends RuntimeException {

    public BaseException() {
    }

    public BaseException(String msg) {
        super(msg);
    }

}