Visual LabINTERACTIVE LEARNING
04 · BUSINESS BACKENDP012 MIN

Middleware 与错误处理

用请求管线处理通用关注点,并把预期业务冲突与未知故障分开。

MENTAL MODELMIDDLEWARE & ERROR HANDLING
01Trace
02Auth
03Rate Limit
04Validation
05Handler
06Error Mapper
Middleware 像流水线检查站,错误模型像统一交通规则;两者都应减少重复,而不是隐藏业务。
01 · CONCEPTS & BOUNDARIES

先把概念与边界说清楚

定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。

01

Middleware

在请求前后执行认证、解析、trace、限速或日志等横切逻辑。

02

Operational Error

可预期并可向客户端解释的错误,如库存不足、版本冲突、无权限。

03

Programmer / System Error

空指针、数据库不可用、未知异常等需要记录、告警和安全响应的问题。

02 · BLIND BOTS CASE

库存不足为何不应返回 500

问题现场

客户端把所有失败都显示“服务器异常”,监控也被业务冲突淹没。

  1. 01

    定义 InventoryConflict 错误码。

  2. 02

    映射为 409 与可操作详情。

  3. 03

    未知异常记录 trace_id 并返回通用 500。

得到什么

用户知道如何修正,告警也聚焦真正故障。

03 · PRACTICE

马上动手

  1. 为常见错误设计 code、status、message、details。
  2. 确定哪些 Middleware 有顺序依赖。
04 · PITFALLS

常见坑

  • catch 后吞掉错误
  • 错误响应包含内部堆栈
  • 业务错误与系统错误同一告警级别
05 · KNOWLEDGE CHECK错误码和 HTTP 状态码为何都需要?查看答案⌄
答案

HTTP 状态表达通用类别,稳定业务错误码让客户端区分 inventory_insufficient、version_conflict 等具体处理路径。