# 错误处理规范 > 从 Claude Code 的 `categorizeRetryableAPIError()` + `isTerminalTaskStatus()` 模式迁移。 ## 错误三分类 ``` 类别 处理方式 例子 ───── ────────── ────────── 可重试 退避重试(3次) 网络超时、API 限流 不可重试 立即报告 权限不足、参数非法 用户取消 静默终止 用户中断、超时退出 ``` ## 具体规则 ### 网络/API 相关 - 首次失败等待 2s → 第二次 5s → 第三次报告失败 - 网络超时不等同于系统故障,一律重试 - 重试时保持操作幂等(不产生重复副作用) ### 文件操作 - 写文件前置检查路径合法性 - 移动/删除文件用 `mv` 而非 `rm`(保留恢复可能) - 目录创建用 `mkdir -p` 确保幂等 ### 执行命令 - `exec` 失败时先看 stderr,非零退出不等同于失败 - `timeout` 后进程可能仍在运行,需 `process kill` 清理 - 用 `pipefail` 确保中间步骤失败能被检测 ### 用户取消 - 用户中断(如 `Ctrl+C`)不做重试 - 已产生的副作用不回滚,但标记状态 - 报告"已处理到哪一步"而非"失败了" ## Fast-Path 模式 ``` 复杂操作前先问快速路径: 1. 这个操作我能 10s 内完成吗?→ 直接干 2. 需要用户决策?→ 先问再干 3. 可能失败?→ 预估风险,必要时先问 ```