You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot中如何判断ResponseEntity<Void>类型返回的删除操作是否成功?

判断ResponseEntity是否为null来验证删除操作成功的合理性

仅判断resp != null是非常不合理的,原因和正确做法如下:

  • 正常调用外部服务的场景下,Spring的HTTP客户端(比如RestTemplate、Feign)返回的ResponseEntity几乎不会为null。只有当你调用的deleteMethod本身存在代码缺陷(比如手动返回了null),才会出现null的情况,但这属于异常场景,不是判断业务操作成功的标准。
  • 要判断删除操作是否成功,核心应该看HTTP响应状态码:
    • 通常删除成功的标准状态码是204 No Content(表示操作成功且无返回内容),也可能是200 OK,具体要看外部服务的定义。
    • 你可以通过resp.getStatusCode().is2xxSuccessful()来快速判断是否属于成功类的状态码;如果需要更精确,也可以直接比对具体状态码,比如resp.getStatusCode() == HttpStatus.NO_CONTENT。
  • 另外要注意:如果调用外部服务时出现网络问题、服务不可用等情况,客户端通常会直接抛出异常(比如RestClientException、FeignException),这时候resp根本不会被赋值,所以你还需要通过捕获这些异常来处理调用失败的场景,而不是靠判断resp是否为null。

举个简单的正确示例:

try {
    ResponseEntity<Void> resp = obj.deleteMethod();
    // 判断状态码是否为成功类
    if (resp.getStatusCode().is2xxSuccessful()) {
        // 删除成功逻辑
    } else {
        // 状态码非成功,处理失败逻辑
    }
} catch (Exception e) {
    // 处理调用外部服务时的异常(网络问题、服务报错等)
}

内容的提问来源于stack exchange,提问作者elvis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:14:53