package com.dskj.znzn.transData.common.exception; import com.dskj.znzn.transData.common.base.R; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestControllerAdvice; import java.util.List; @Slf4j @RestControllerAdvice public class GloableException { @ExceptionHandler(BusinessException.class) @ResponseBody public R businessExdeption(BusinessException e) { log.error("Exception", e); return R.error(e.getMessage()); } @ExceptionHandler(UserNotLoginExeption.class) @ResponseBody public R userNotLoginExeption(UserNotLoginExeption e) { log.error("Exception", e); return R.error(401, "Unauthorized"); } @ExceptionHandler(MethodArgumentNotValidException.class) @ResponseBody public R methodArgumentNotValidException(MethodArgumentNotValidException e) { List fieldErrors = e.getBindingResult().getFieldErrors(); // 这里你可以根据自己的需要来处理错误 // 例如,构建一个响应体,其中包含所有字段的错误信息 StringBuilder errorMessage = new StringBuilder(); for (FieldError fieldError : fieldErrors) { errorMessage.append("\n - ") .append(fieldError.getField()) .append(": ") .append(fieldError.getDefaultMessage()); } log.error("Exception", e); return R.error(errorMessage.toString()); } @ExceptionHandler(Exception.class) @ResponseBody public R exception(Exception e) { log.info("Exception: [{}]", e.getMessage()); log.error("Exception", e); return R.error(e.getMessage()); } }