Springboot2.x intercepta uniformemente a exceção especificada

Springboot2.x intercepta uniformemente a exceção especificada

Intercept Exception ControllerAdvice retorna 400
Intercept AuthorizationException retorna 401

@ControllerAdvice
public class ExceptionControllerAdvice {
    
    

    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    @ResponseBody
    public ResponseEntity<ResponseResultVO> bindExceptionHandler(BindException exception) {
    
    
        exception.printStackTrace();
        BindingResult result = exception.getBindingResult();
        String errorMsg = null;
        if (result.hasErrors()) {
    
    
            Set<FieldError> fieldErrors = new HashSet<>(result.getFieldErrors());
            errorMsg = fieldErrors.iterator().next().getDefaultMessage();
        }
        return ResponseEntity.badRequest().body(ResponseResultVO.builder().code(ErrorCodeConstant.VALID_ERROR).msg(errorMsg).build());
    }

    @ExceptionHandler(value = AuthorizationException.class)
    @ResponseBody
    public ResponseEntity<ResponseResultVO> authorExceptionHandler(AuthorizationException e) {
    
    
        return ResponseEntity.status(401).body(ResponseResultVO.builder().code(ErrorCodeConstant.VALID_ERROR).msg(e.getMessage()).build());
    }
}

Acho que você gosta

Origin blog.csdn.net/weixin_38045214/article/details/115299929
Recomendado
Clasificación