我应该抛出什么异常以返回与使用@Valid 时得到的相同的错误请求响应?

问题描述

我正在通过 SpringValidatorAdapter 手动验证 bean,如下例所示:

Set<ConstraintViolation<CertificationDto>> violations = validator.validate(certificationDto,ValidationGroups.Update.class);
if (!violations.isEmpty()) {
    // FIXME Wrong exception,doesn't appear as usual validation response
    throw new ConstraintViolationException(violations);
}

我想保持错误响应的异构性,并且正在寻找类似的东西:

{
    "timestamp": "2021-03-20T18:28:57.343+00:00","status": 400,"error": "Bad Request","message": "Validation Failed for object='certificationDto'. Error count: 1","errors": [
        {
            "codes": [
                "NotBlank.certificationDto.name","NotBlank.name","NotBlank.java.lang.String","NotBlank"
            ],"arguments": [
                {
                    "codes": [
                        "certificationDto.name","name"
                    ],"arguments": null,"defaultMessage": "name","code": "name"
                }
            ],"defaultMessage": "must not be blank","objectName": "certificationDto","field": "name","rejectedValue": null,"bindingFailure": false,"code": "NotBlank"
        }
    ],"path": "/certifications"
}

正确抛出的异常是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)