package main
import (
"errors"
"fmt"
)
// Exported sentinels — callers compare via errors.Is
var (
ErrNotFound = errors.New("not found")
ErrAlreadyExists = errors.New("already exists")
ErrUnauthorized = errors.New("unauthorized")
)
func getUser(id int) (string, error) {
if id == 42 {
return "Alice", nil
}
return "", fmt.Errorf("getUser id=%d: %w", id, ErrNotFound)
}
func main() {
if _, err := getUser(99); err != nil {
fmt.Println(err) // getUser id=99: not found
if errors.Is(err, ErrNotFound) {
fmt.Println("→ matched ErrNotFound")
}
}
}
Create a free account and build your private vault. Share publicly whenever you want.