Golang error handling
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/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)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill golang-error-handlingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.3 KB, 280 tokens by cl100k_base, as published. Nobody here has run it
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.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.