package cn.seecoder.ai.exception; import cn.seecoder.ai.controller.response.ErrorRes; import cn.seecoder.ai.controller.response.Response; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; /** * 全局异常处理器 * RuntimeException可以直接上抛出的,在此处被捕获 * @author fanyanpeng * @date 2023/3/24 2:49 */ @Slf4j @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(value = IllegalArgumentException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) public Response handleValidException(MethodArgumentNotValidException e) { BindingResult bindingResult = e.getBindingResult(); String message = null; if (bindingResult.hasErrors()) { FieldError fieldError = bindingResult.getFieldError(); if (fieldError != null) { message = fieldError.getField()+fieldError.getDefaultMessage(); } } return new ErrorRes(200,message); } }