Как оборачивать ошибки fmt.Errorf %w?

Junior
357 просмотров
AFK Offer AI

fmt.Errorf("open config: %w", err) — создаёт новую ошибку, которая оборачивает оригинальную. %w (не %v!) сохраняет цепочку — errors.Is и errors.As смогут найти оригинал. Каждый слой добавляет контекст: repo → "query user: %w" → usecase → "get profile: %w" → handler. В итоге "get profile: query user: connection refused". Для unwrap — errors.Unwrap(err). Правило: всегда оборачивай ошибки при пробросе наверх, добавляя контекст текущей операции. Не оборачивай если хочешь скрыть детали реализации.

Следующий вопрос

Как реализовать worker pool?