Error Handling

SKILL开发规范
开发规范 未标注权限 许可证不明确

设计 API 错误码和错误结构时使用。适用于错误响应规范、调用方错误处理、调试可观测。优先使用 RFC 7807 Problem Details + 业务错误码 + 调用方处理建议。

一句话选型结论

按资料字段整理

Error Handling是开发规范类的 Agent Skill,安装方式:GitHub 仓库,权限级别未标注,许可证不明确,没有现成安装命令,需按说明手动放置 SKILL.md。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发规范 安装方式GitHub 仓库 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 ai-fullstack-delivery-workflow
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

GitHub 仓库
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    按安装说明或仓库 README,把 SKILL.md 放到客户端的 skills 目录(一般一个技能一个文件夹)。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发规范
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方zhaoxuya520仓库 ai-fullstack-delivery-workflow · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式GitHub 仓库安装包 zhaoxuya520/ai-fullstack-delivery-workflow
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 2026-05-19
正文体量6.9 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
统一代码规范

把团队约定写成模型能执行的检查项。

做代码审查

按规范逐条检查改动。

写提交与文档规范

统一提交信息与文档模板。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 基础信息齐全,可以先按说明装一个试试。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有现成安装命令,要按安装说明或仓库 README 手动放置。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发规范场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Error Handling当前 未标注权限 GitHub 仓库 未标注 未标注 无
Firebase auth basics 邮件管理 接触敏感数据 GitHub 仓库 89.6 万 Codex、Claude、Cursor 有
时差 联网访问 GitHub 仓库 79.8 万 Codex、Claude、Cursor 有
内存卫生 联网访问 ClawHub 市场 67.9 万 OpenClaw 有
及时的工程专家 只读 ClawHub 市场 55.8 万 OpenClaw 有
FastAPI templates 测试 联网访问 GitHub 仓库 37.2 万 Codex、Claude、Cursor 有

SKILL.md 全文

6.9 KB
模型实际读到的说明书原文,来自技能仓库

错误码设计

参考来源:RFC 7807 Problem Details、Stripe / GitHub API 错误规范

适用场景

  • API 错误响应结构设计
  • 错误码体系建立
  • 给调用方的错误处理指南
  • 调试和可观测性

核心原则

1. 错误必须能指导调用方恢复
   不只是说"出错了",要说"怎么办"

2. 区分 HTTP 状态码和业务错误码
   HTTP:协议层级错误(认证、格式、服务器)
   业务码:业务逻辑层级错误(库存不足、状态不允许)

3. 不要 200 包装错误
   破坏 HTTP 语义

4. 不要泄露敏感信息
   错误信息不能暴露内部架构

错误响应标准结构(RFC 7807)

{
  "type": "https://api.example.com/errors/insufficient_funds",
  "title": "Insufficient Funds",
  "status": 402,
  "detail": "Your account balance is insufficient for this operation.",
  "instance": "/orders/123",
  "code": "insufficient_funds",
  "trace_id": "req_abc123",
  "errors": [
    {
      "field": "amount",
      "message": "Amount exceeds available balance",
      "current_balance": 50.00,
      "required": 100.00
    }
  ]
}

简化结构(推荐)

{
  "code": "insufficient_funds",
  "message": "Your account balance is insufficient",
  "trace_id": "req_abc123",
  "details": {
    "current_balance": 50.00,
    "required": 100.00
  }
}

错误必备字段

1. code(业务错误码)
   - 字符串,下划线命名
   - 例:insufficient_funds / invalid_email / order_not_found

2. message(用户可见信息)
   - 简短可读
   - 中文项目用中文
   - 不暴露技术细节

3. trace_id(追踪 ID)
   - 用于客服 / 工程师查日志
   - 必须有

4. details(详细信息,可选)
   - 字段级错误(表单校验)
   - 上下文数据(库存数量、当前余额)

HTTP 状态码 vs 业务错误码

HTTP 状态码(粗粒度):
  400 Bad Request - 请求格式错误
  401 Unauthorized - 未认证
  403 Forbidden - 无权限
  404 Not Found - 资源不存在
  409 Conflict - 冲突
  422 Unprocessable - 校验失败
  429 Too Many Requests - 限流

业务错误码(细粒度):
  在同一个 HTTP 状态码下区分具体原因

  HTTP 422 + code:
    - "invalid_email"
    - "weak_password"
    - "username_taken"

  HTTP 409 + code:
    - "duplicate_order"
    - "concurrent_modification"
    - "resource_locked"

错误码命名规范

风格:snake_case
长度:≤ 30 字符
结构:[资源]_[原因] 或 [原因]

示例:
  ✅ insufficient_funds
  ✅ order_not_found
  ✅ invalid_email
  ✅ rate_limit_exceeded
  ✅ payment_method_required

  ❌ ERR001(无语义)
  ❌ Error.InsufficientFunds(驼峰)
  ❌ NSF(缩写难懂)

表单校验错误(多字段)

HTTP 422 Unprocessable Entity

{
  "code": "validation_failed",
  "message": "Request validation failed",
  "trace_id": "req_abc123",
  "errors": [
    {
      "field": "email",
      "code": "invalid_format",
      "message": "邮箱格式不正确"
    },
    {
      "field": "password",
      "code": "too_short",
      "message": "密码至少 8 位",
      "min_length": 8,
      "actual_length": 5
    }
  ]
}

限流错误(必备字段)

HTTP 429 Too Many Requests
Retry-After: 60

{
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded. Retry after 60 seconds.",
  "trace_id": "req_abc123",
  "limit": 100,
  "remaining": 0,
  "reset_at": "2026-01-15T10:31:00Z"
}

错误码表

## 错误码表:[模块名]

| HTTP | 业务码 | 触发条件 | 用户提示 | 调用方处理 | 可重试 |
|------|--------|---------|---------|-----------|--------|
| 400 | invalid_email | 邮箱格式错误 | "邮箱格式不正确" | 检查并提示用户 | ❌ |
| 401 | token_expired | Token 过期 | "登录已过期" | 引导重新登录 | ❌ |
| 401 | token_invalid | Token 无效 | "登录信息异常" | 引导重新登录 | ❌ |
| 403 | permission_denied | 无权限 | "无权访问" | 提示联系管理员 | ❌ |
| 404 | order_not_found | 订单不存在 | "订单不存在" | 检查 ID 或刷新列表 | ❌ |
| 409 | duplicate_order | 重复创建 | "订单已存在" | 提示重复,跳转到已有订单 | ❌ |
| 422 | validation_failed | 字段校验失败 | 见 errors 字段 | 高亮错误字段 | ❌ |
| 429 | rate_limit_exceeded | 调用过频 | "请稍后再试" | 按 Retry-After 等待重试 | ✅ |
| 500 | internal_error | 服务异常 | "系统异常,请稍后" | 显示通用错误 + 重试 | ✅ |
| 503 | service_unavailable | 服务不可用 | "服务繁忙" | 显示通用错误 + 重试 | ✅ |
| 402 | insufficient_funds | 余额不足 | "余额不足" | 引导充值 | ❌ |
| 409 | order_already_paid | 订单已支付 | "订单已支付" | 跳转到订单详情 | ❌ |
| 410 | resource_deleted | 资源已删除 | "资源不存在" | 返回列表 | ❌ |

工作流程

1. 列出端点清单
2. 对每个端点列出可能的失败场景
3. 对每个失败场景:
   - 选 HTTP 状态码
   - 设计业务错误码(snake_case)
   - 写用户可见消息
   - 写调用方处理建议
   - 标注是否可重试
4. 输出错误码表
5. 在 OpenAPI 中定义错误响应 Schema

质量自检

□ HTTP 状态码使用正确
□ 业务错误码命名规范(snake_case)
□ 每个错误码有触发条件说明
□ 每个错误码有用户提示
□ 每个错误码有调用方处理建议
□ 是否标注了可重试
□ 表单校验返回字段级错误
□ 限流返回 Retry-After 和限额信息
□ 错误信息不泄露内部架构
□ 所有错误都有 trace_id

常见坑

  1. 200 包装错误——HTTP 200 + body 里 success: false
  2. 错误信息只有英文——中文项目用户看不懂
  3. trace_id 缺失——无法排查
  4. 限流返回 429 但没 Retry-After——客户端不知道何时重试
  5. 校验失败只返回 1 条——有 5 个错误字段只看到 1 个
  6. 错误信息暴露技术细节——"Database connection failed"
  7. 不区分 401 和 403——已登录但无权限返回 401
  8. 404 隐藏权限(隐私考虑)但不一致

配套模板

  • templates/error-code-template.md — 错误码表 + 错误响应结构模板

与其他 skill 的协作

上游:
  endpoint-design → 端点清单
  request-response → 校验规则触发的错误

平行:
  auth-permission → 401/403 错误细分
  idempotency-retry → 重试相关错误(409/429)

下游:
  openapi-mock → 错误响应写入 OpenAPI
  转交前端 → 错误处理实现
  转交 QA → 错误场景测试

常见问题

5 问
答案由本站依据条目字段整理
Error Handling怎么安装?

没有现成安装命令:按安装说明或仓库 README,把 SKILL.md 放进客户端的 skills 目录(一般一个技能一个文件夹)。

Error Handling支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Error Handling权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Error Handling收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Error Handling用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。