如何解决如何处理 REST 服务中的错误请求
public class Item implements Serializable{
private static final long serialVersionUID = 1L;
@Id
private String ID;
private String name;
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd")
private Date insertDate;
//getter setter
}
@RequestMapping(value = "/item",method = RequestMethod.POST,produces = "application/json")
public Object saveItem(@RequestBody(required = false) Item item) {
if (item == null) {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
//code..
return new ResponseEntity<>(HttpStatus.OK);
}
当不正确的日期格式到达时,会产生一个我没有处理的错误,因为它没有输入if。为什么会发生这种情况?应该如何管理? 即使没有@JsonFormat 注解也出现问题
解决方法
我想您正在使用弹簧靴。您可以使用 ControllerAdvice 来定义异常情况下的响应。您可以将多个处理程序定义为使用 ExceptionHandler 注释的多个方法。
@Slf4j
@ControllerAdvice
public class RestControllerAdvice {
@ExceptionHandler(InvalidArgumentException.class)
public ResponseEntity<ResponseDto<Object>> handleException(Exception exception) {
log.error(exception.getMessage(),exception);
return new ResponseEntity<>(<someBody>,HttpStatus. BAD_REQUEST);
}
@ExceptionHandler(Exception.class)
public ResponseEntity<ResponseDto<Object>> handleException2(Exception exception) {
log.error(exception.getMessage(),HttpStatus. INTERNAL_SERVER_ERROR);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。