Как организовать error codes?

Middle
413 просмотров
AFK Offer AI

В Go нет числовых error codes как в C. Вместо этого используют sentinel errors и custom error types. Sentinel: var ErrNotFound = errors.New("not found") — проверяешь через errors.Is(err, ErrNotFound). Custom type: type ValidationError struct { Field, Message string } с методом Error() string — проверяешь через errors.As(err, &ve). Для gRPC используй status.Error(codes.NotFound, "..."). Для REST — маппинг domain errors на HTTP коды в handler слое. Группируй ошибки по пакетам: каждый пакет определяет свои ошибки.

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

Что такое tail recursion?