GloableException.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.dskj.znzn.transData.common.exception;
  2. import com.dskj.znzn.transData.common.base.R;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.springframework.validation.FieldError;
  5. import org.springframework.web.bind.MethodArgumentNotValidException;
  6. import org.springframework.web.bind.annotation.ExceptionHandler;
  7. import org.springframework.web.bind.annotation.ResponseBody;
  8. import org.springframework.web.bind.annotation.RestControllerAdvice;
  9. import java.util.List;
  10. @Slf4j
  11. @RestControllerAdvice
  12. public class GloableException {
  13. @ExceptionHandler(BusinessException.class)
  14. @ResponseBody
  15. public R businessExdeption(BusinessException e) {
  16. log.error("Exception", e);
  17. return R.error(e.getMessage());
  18. }
  19. @ExceptionHandler(UserNotLoginExeption.class)
  20. @ResponseBody
  21. public R userNotLoginExeption(UserNotLoginExeption e) {
  22. log.error("Exception", e);
  23. return R.error(401, "Unauthorized");
  24. }
  25. @ExceptionHandler(MethodArgumentNotValidException.class)
  26. @ResponseBody
  27. public R methodArgumentNotValidException(MethodArgumentNotValidException e) {
  28. List<FieldError> fieldErrors = e.getBindingResult().getFieldErrors();
  29. // 这里你可以根据自己的需要来处理错误
  30. // 例如,构建一个响应体,其中包含所有字段的错误信息
  31. StringBuilder errorMessage = new StringBuilder();
  32. for (FieldError fieldError : fieldErrors) {
  33. errorMessage.append("\n - ")
  34. .append(fieldError.getField())
  35. .append(": ")
  36. .append(fieldError.getDefaultMessage());
  37. }
  38. log.error("Exception", e);
  39. return R.error(errorMessage.toString());
  40. }
  41. @ExceptionHandler(Exception.class)
  42. @ResponseBody
  43. public R exception(Exception e) {
  44. log.info("Exception: [{}]", e.getMessage());
  45. log.error("Exception", e);
  46. return R.error(e.getMessage());
  47. }
  48. }