| name | go-errors |
| description | Go error handling patterns. Routes to specific patterns. |
Go Error Handling
Route by Need
- Wrapping errors with context → see wrapping/
- Defining sentinel errors → see sentinel/
- Checking error types → see checking/
Quick Check
- Never ignore errors (_ = fn())
- Wrap with context at boundaries
- Use errors.Is/As, not ==
Common Pattern
func ProcessFile(path string) error {
f, err := os.Open(path)
if err != nil {
return fmt.Errorf("open %s: %w", path, err)
}
defer f.Close()
if err := parse(f); err != nil {
return fmt.Errorf("parse %s: %w", path, err)
}
return nil
}