package com.taiji.system.util; import com.taiji.system.enums.ResultStatusEnum; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.context.request.WebRequest; import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; /*** *

* 全局异常处理 *

* @author hou yi * @date 2022/7/27 11:17 **/ @RestControllerAdvice @SuppressWarnings("all") public class GlobalExceptionHandle extends ResponseEntityExceptionHandler { @ExceptionHandler(RuntimeException.class) public ResultWrapper customException(RuntimeException e) { // 全局异常处理 return new ResultWrapper(ResultStatusEnum.GLOBAL_EXCEPTION.getCode(), e.getMessage(), null); } @Override protected ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) { // 参数校验异常统一处理 final StringBuilder builder = new StringBuilder(); for (FieldError fieldError : ex.getBindingResult().getFieldErrors()) { final String message = fieldError.getDefaultMessage(); builder.append(message); break; } return ResponseEntity.ok(new ResultWrapper(ResultStatusEnum.PARAMETER_ERROR.getCode(), builder.toString(), null)); } }