java是否有任何方法可以通过@ExceptionHandler将多个错误类型放入一个对象中
这是我第一次在会议上提出问题。我想问一下是否有一种方法可以通过@ExceptionHandler将多个错误类型同时抛出到一个对象中给用户
例如,当用户请求服务时,需要满足以下要求
(1) accountNo : required
(2) userDecision : @Pattern(regex="^[1|2]$")
但是,用户忽略了accountNo(MissingServletRequestParameterException)并将userDecision输入为3(ContrainViolationException)。那么我是否可以抛出一个Json对象,比如
[
{
"error1":"your accnoutNo is empty",
"error2":"your decision is wrong"
}
]
同时对用户
非常感谢你,很抱歉我的英语不好
# 1 楼答案
您可以实现一个自定义验证器(https://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/validation.html),并在validate方法中拒绝这些值
之后,您可以使用@ControllerAdvice注释为此验证器实现ExceptionHandler(扩展ResponseEntityExceptionHandler),您可以在其中处理ValidationException
看看这个:https://stackoverflow.com/a/53726774/10664009也许有帮助