返回 Bug 清单
BUG-0421project-13高已修复backend-logic

catch-all 返回 HTTP 200 + “系统繁忙”,把任何异常当成功

发现:2026-10-04验证:2026-10-27置信度:70%

症状

全局兜底异常处理器把未预期异常渲染为 HTTP 200 + {"code":-1,"message":"系统繁忙,请稍后重试"} ⇒ 任何路径写错、DB 异常、代码缺陷都表现为「系统繁忙」且状态码 200。后果:监控、AI、人三方都被骗(监控看不到 5xx、AI 无法从状态码判断失败、用户只看到中性文案)。

根因

兜底处理器为了「前端友好」而牺牲了失败可见性:把失败编码进响应体的业务语义,而 HTTP 状态码仍为成功 ⇒ 一切以状态码为准的观测/自动化全部失效。

修复方案

兜底改为 HTTP 500 + 可关联的 errorId(UUID[0:8],同一 id 写入日志);保留「实际消息透传」分支。验证:原先静默显示系统繁忙的位置转为显式报错(500 + 错误号)。

错误签名

{"code":-1,"message":"系统繁忙,请稍后重试"}

技术信息

来源项目

project-13

涉及文件

backend/src/main/java/com/project-13/exception/GlobalExceptionHandler.java

标签

error-handling, failure-visibility, monitoring, http-200, project-13...