要创建自定义错误,我们需要知道它是什么类型的Exception错误。问题是我无法确定“请求主体缺少一个”是什么类型的错误。起初我以为它被归类为MethodArgumentNotValidException
,但它没有捕获错误。
我为错误创建控制器建议
@Override
protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException exception, HttpHeaders headers, HttpStatus status, WebRequest request){
MyObject<Object> error = MyObject.failure("Invalid Parameter");
log.error("argument invalid", exception);
return new ResponseEntity<Object>(error, new HttpHeaders(), HttpStatus.OK);
}
该控制器
@PostMapping(value = "/tes")
public MyObject<MyRes> myTest(@Valid @RequestBody MyReq req, HttpServletRequest hsReq) throws Exception{
return myService.updateTestData(req);
}
我使用Postman来调用API。
*带括号初审
*二审-无括号
未发生错误。
我的问题是,如何处理这个错误,当没有请求体附加在所有的请求.我想返回“无效参数”错误在这种情况下太.
2条答案
按热度按时间rfbsl7qr1#
这可能有点晚,但你可能想尝试在你的ControllerAdvice类中添加这个,这就是我在尝试发送空请求时捕获 Required request body is missing 错误的原因。
a8jjtwal2#
一种方法是覆盖
ResponseEntityExceptionHandler
中的handleHttpMessageNotReadable
方法。