Claude Code Go 开发技能|用 errors.Is 保留错误语义
EnglishClaude Code 安装步骤
- 从固定版本 GitHub 工作副本获取完整的 `docs/zh-TW/skills/golang-patterns` 目录。
- 将目录放入目标项目的 `.claude/skills/`,确认 `.claude/skills/golang-patterns/SKILL.md` 存在,再从项目根目录启动 Claude Code 并输入 `/golang-patterns`。
中文摘要
在 Go 服务中增加错误上下文,同时保留原始错误链,便于调用方稳定地区分文件缺失和读取失败。
SKILL.md 中文导读
可复现示例
给配置读取函数加入文件路径上下文。测试一个不存在的文件仍能通过 `errors.Is(err, os.ErrNotExist)` 识别。工作步骤
- 读取文件出错时用 `fmt.Errorf` 的 `%w` 包装原错误,并在消息里加入必要的操作上下文。
- 在调用方用 `errors.Is` 匹配 `os.ErrNotExist`。给不同的失败类型加测试并核对是否保留原始原因。
验收方法
测试应同时确认错误含读取操作的上下文,并且 `errors.Is` 返回真。
GitHub 原文 · 更新日期
适用环境
准备现有 Go 模块与本地测试数据。这个示例使用标准库的 `fmt`、`errors` 和 `os`。
常见问题
什么时候使用 `errors.As`?
需要取得错误链中某个具体类型并读取其字段时,可以使用 `errors.As`。
相关指南
相关推荐
backend-patterns 技能
affaan-m/everything-claude-code
clickhouse-io 技能
affaan-m/everything-claude-code
Coding Standards 技能:把 TypeScript 业务结果写成明确类型
affaan-m/everything-claude-code
continuous-learning-v2 技能
affaan-m/everything-claude-code
continuous-learning 技能
affaan-m/everything-claude-code
eval-harness 技能
affaan-m/everything-claude-code