AGENT SKILL
golang-error-handling
Standards for error wrapping, checking, and definition in Golang. Use when wrapping errors, defining sentinel errors, or handling errors idiomatically in Go. (triggers: fmt.Errorf, errors.Is, errors.As, error wrapping, sentinel error, error handling)
- License 许可
- MIT
- 最近更新
- 2026-06-24
- Stars
- ★ 66
- Forks
- 24
01 前言 Front Matter
- name
- golang-error-handling
- description
- Standards for error wrapping, checking, and definition in Golang. Use when wrapping errors, defining sentinel errors, or handling errors idiomatically in Go. (triggers: fmt.Errorf, errors.Is, errors.As, error wrapping, sentinel error, error handling)
02 资源文件 9
- 许可证LICENSE.txt11.1 KB
- 参考文档reference/evaluation.md21.2 KB
- 参考文档reference/mcp_best_practices.md7.2 KB
- 参考文档reference/node_mcp_server.md27.9 KB
- 参考文档reference/python_mcp_server.md24.5 KB
- 脚本scripts/connections.py4.8 KB
- 脚本scripts/evaluation.py12.3 KB
- 脚本scripts/example_evaluation.xml1.2 KB
- 脚本scripts/requirements.txt29 B
03 SKILL.md 正文
Golang Error Handling Standards
Priority: P0 (CRITICAL)
Principles
- Errors are Values: Handle them like any other value.
- Handle Once: Log OR Return. Never Log AND Return (creates duplicate logs).
- Add Context: Don't just return
errbubble up. Wrap it with context:fmt.Errorf("failed to open file: %w", err). - Use Standard Lib: Go 1.13+
errorspackage (Is,As,Unwrap) is sufficient. Avoidpkg/errors(deprecated).
Guidelines
- Sentinel Errors: Expoted, fixed errors (
io.EOF,sql.ErrNoRows). Useerrors.Is(err, io.EOF). - Error Types: Structs implementing
error. Useerrors.As(err, &target). - Panic: Only for unrecoverable startup errors.
Anti-Patterns
- No bare return err: Wrap with
fmt.Errorf("context: %w", err)to preserve call chain. - No string error checks: Use
errors.Is/errors.As; string comparison is brittle. - No swallowed errors: Never assign errors to
_; always handle or propagate.