===== Sentinel errors ===== ==== What is it? ==== A **sentinel error** is a package-level variable used as a fixed, recognizable error value. Example: var ErrNotFound = errors.New("not found") ==== What is it used for? ==== * Let callers check for a specific error using equality (`err == ErrNotFound`) or (preferably) `errors.Is(err, ErrNotFound)` when wrapping is involved. ==== Example ==== package store import "errors" var ErrNotFound = errors.New("not found") ==== Notes / pitfalls ==== * Sentinel errors are simple but can be too generic for large systems. * Prefer typed errors when you need extra context (resource/id). * If you wrap errors, use `errors.Is` to match the sentinel. ==== Hard words (English) ==== * **sentinel** /ˈsentɪnəl/: dấu hiệu nhận diện/cột mốc * **recognizable** /ˈrekəɡnaɪzəbəl/: dễ nhận ra * **generic** /dʒəˈnerɪk/: chung chung