design-pattern
design-pattern/assertion/index.md
medium
assertion-index
断言式异常处理 — 失败立即抛 ApiException,业务代码线性直叙;4 个叶子下钻
子项索引
| 子项 | 一句话 |
|---|---|
| principle skill | 断言式异常处理三条精髓 + Asserts 引擎 12 个通用方法 |
| asserts-class skill | 场景化 Asserts 类设计 — 命名约定 / 错误码绑定 / 真实示范(TextbookAsserts / OutlineAsserts) |
| validator-vs-assertion skill | Pydantic Schema validator 与 Asserts 各自的边界 + 5 个不该用断言的反例 |
| side-effect-cleanup skill | 与 ApiException 三件套配合的边界 try/except — 何时需要捕获 ApiException 做副作用清理 |
Design Pattern · Assertion
一句话
业务校验首选断言:<Domain>Asserts.<语义方法>(...) 失败立即抛 ApiException,业务代码读起来像直叙。
来源
参考 Java ImportAsserts 范式。
何时下钻到这层
| 任务 | 选哪个子项 |
|---|---|
| 新业务模块想加 Asserts 类 | asserts-class |
| 不确定 Asserts 与 Pydantic 怎么分工 | validator-vs-assertion |
| 在 service / pipeline 写 try/except | side-effect-cleanup |
| 想了解整体思想 | principle |
典型落点
代码层:
- 引擎:
py/core/assertion.py12 个静态方法 - 业务包装:
py/asserts/多个业务专属类(按领域命名) - 前端镜像:
frontend/app/lib/assertion.tsApiError + Asserts 系列方法