本文共 3698 字,大约阅读时间需要 12 分钟。
###
### ### ###统一api异常:
public class APIException extends RuntimeException { private int code; private String message; public APIException(int code, String message){ super(message); this.code = code; this.message = message; } public APIException(String message){ this(ResultEnum.FAILED.getCode(),message); } public APIException(){ this(ResultEnum.FAILED.getCode(),ResultEnum.FAILED.getMessage()); }}
统一异常处理:
@RestControllerAdvicepublic class ExceptionControllerAdvice { /** * 全局处理参数校验未通过异常 * @return */ @ExceptionHandler(value = MethodArgumentNotValidException.class) public ErrorResponsemethodArgumentNotValidExceptionHandler(MethodArgumentNotValidException e) { ErrorResponse errorResponse = new ErrorResponse<>(); // 获得默认消息 String defaultMessage = e.getBindingResult().getAllErrors().get(0).getDefaultMessage(); errorResponse.setFailed(ResultEnum.VALIDATE_FAILED.getCode(), ResultEnum.VALIDATE_FAILED.getMessage()+": "+defaultMessage); return errorResponse; } /** * 全局处理api异常 * @param e * @return */ @ExceptionHandler(value = APIException.class) public ErrorResponse apiExceptionHandler(APIException e){ ErrorResponse errorResponse = new ErrorResponse<>(); errorResponse.setFailed(ResultEnum.FAILED.getMessage()+e.getMessage()); return errorResponse; } /** * 全局处理exception * @param e * @return */ @ExceptionHandler(value = Exception.class) public ErrorResponse exceptionHandler(Exception e){ ErrorResponse errorResponse = new ErrorResponse<>(); errorResponse.setFailed(ResultEnum.ERROR.getCode(),ResultEnum.ERROR.getMessage()); return errorResponse; }}
统一响应体:
@RestControllerAdvicepublic class ResponseControllerAdvice implements ResponseBodyAdvice
转载地址:http://ihxxi.baihongyu.com/