Manejo de excepciones unificado_ notas de estudio

SpringMVC proporciona @ControllerAdvicefunciones

  1. Extraiga una clase de manejo de excepciones, agregue @ControllerAdviceanotaciones a la clase y basePackagesespecifique mediante atributos que debe manejar las excepciones lanzadas por esas clases;
@ControllerAdvice(basePackages = "com.atguigu.gulimall.product.controller")
public class GulimallExceptionControllerAdvice {
    
    
    
}
  1. Escriba un método para manejar excepciones y agregue @ExceptionHandleranotaciones al método para decirle a Springmvc qué excepciones puede manejar este método;
    pase el tipo de excepción de respuesta en los parámetros del método
@Slf4j
@ControllerAdvice(basePackages = "com.atguigu.gulimall.product.controller")
public class GulimallExceptionControllerAdvice {
    
    

    @ResponseBody
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public R handleValidException(MethodArgumentNotValidException e){
    
    
      log.info("数据校验出现问题:{},异常类型:{}",e.getMessage(),e.getClass());
        BindingResult bindingResult = e.getBindingResult();
        List<FieldError> fieldErrors = bindingResult.getFieldErrors();
        Map<String,String> map = new HashMap<>();
        fieldErrors.forEach((fieldError)->{
    
    
            map.put(fieldError.getField(),fieldError.getDefaultMessage());
        });

        return R.error(400,"数据校验错误").put("data",map);
    }
	@ResponseBody
    @ExceptionHandler(value = Throwable.class)
    public R handleException(Throwable throwable){
    
    
        return R.error(BizCodeEnume.UNKNOW_EXCEPTION.getCode(),BizCodeEnume.UNKNOW_EXCEPTION.getMsg());
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_40084325/article/details/109481064
Recomendado
Clasificación