Spring @ExceptionHandler覆盖输入异常

时间:2019-08-13 18:20:02

标签: spring spring-boot exception

在我的场景中调用GET端点时,您必须通知两个输入参数codedate,第一个用@Size(min = 2, max = 2)注释,第二个用@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)注释。也就是说,如果您通过code = 123和date = 2000-01-AA,则必须分别收到两条错误消息,分别与ConstraintViolationExceptionMethodArgumentTypeMismatchException有关。

这是我的代码:

@RestControllerAdvice
public class MyExceptionHandler {

    @ExceptionHandler({MethodArgumentTypeMismatchException.class, ConstraintViolationException.class})
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public ErrorResponse handleArgumentTypeMismatch(RuntimeException ex) {
        ErrorResponse errorResponse = ErrorResponse.builder().status(HttpStatus.BAD_REQUEST.value())
                .message(INVALID_VALUES_MESSAGE).errorDetail(new ErrorDetail(ex.getMessage())).build();
        return errorResponse;
    }
}

当前,我仅收到最后一个参数错误消息,在这种情况下为date,而Spring忽略了code,有什么办法可以接收{{1 }}和code

0 个答案:

没有答案