Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

GlobalExceptionHandle.java 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.taiji.system.util;
  2. import com.taiji.system.enums.ResultStatusEnum;
  3. import org.springframework.http.HttpHeaders;
  4. import org.springframework.http.HttpStatus;
  5. import org.springframework.http.ResponseEntity;
  6. import org.springframework.validation.FieldError;
  7. import org.springframework.web.bind.MethodArgumentNotValidException;
  8. import org.springframework.web.bind.annotation.ExceptionHandler;
  9. import org.springframework.web.bind.annotation.RestControllerAdvice;
  10. import org.springframework.web.context.request.WebRequest;
  11. import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
  12. /***
  13. * <p>
  14. * 全局异常处理
  15. * </p>
  16. * @author hou yi
  17. * @date 2022/7/27 11:17
  18. **/
  19. @RestControllerAdvice
  20. @SuppressWarnings("all")
  21. public class GlobalExceptionHandle extends ResponseEntityExceptionHandler {
  22. @ExceptionHandler(RuntimeException.class)
  23. public ResultWrapper<Object> customException(RuntimeException e) {
  24. // 全局异常处理
  25. return new ResultWrapper(ResultStatusEnum.GLOBAL_EXCEPTION.getCode(), e.getMessage(), null);
  26. }
  27. @Override
  28. protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers,
  29. HttpStatus status, WebRequest request) {
  30. // 参数校验异常统一处理
  31. final StringBuilder builder = new StringBuilder();
  32. for (FieldError fieldError : ex.getBindingResult().getFieldErrors()) {
  33. final String message = fieldError.getDefaultMessage();
  34. builder.append(message);
  35. break;
  36. }
  37. return ResponseEntity.ok(new ResultWrapper(ResultStatusEnum.PARAMETER_ERROR.getCode(), builder.toString(), null));
  38. }
  39. }