You need to enable JavaScript to run this app. SpringBoot升级至2.4.4后response.sendError无法返回自定义错误信息
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot升级至2.4.4后response.sendError无法返回自定义错误信息

问题根因

该现象是Spring Boot 2.3.0版本引入的默认配置变更导致的:为了避免错误信息意外泄露服务端敏感内容,server.error.include-message配置项的默认值从always调整为never,因此调用response.sendError(responseCode, "errorReason")后,Spring Boot默认的错误处理逻辑不会把你传入的errorReason返回到客户端响应中。

解决方案

可以根据业务场景选择以下任意一种方式修复:

  • 方案一:修改全局配置,开启错误信息返回
    在application.yml中添加如下配置:
    server:
      error:
        include-message: always
    
    若使用application.properties,对应配置为:
    server.error.include-message=always
    
    注意:该配置为全局生效,开启后所有错误响应都会携带message字段,生产环境使用前请确认不会泄露敏感信息
  • 方案二:直接写响应流,不依赖默认错误处理逻辑
    替换response.sendError的写法,直接构造响应内容写入输出流,该方式不受全局错误配置影响:
    response.setStatus(responseCode);
    response.setContentType(MediaType.APPLICATION_JSON_VALUE);
    response.getWriter().write("{\"error\":\"你需要返回的errorReason\"}");
    response.getWriter().flush();
    
    这种方式更适合需要自定义鉴权异常返回格式的接口服务场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 01:15:03