errors.Is vs errors.As?

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

errors.Is проверяет, есть ли в цепочке конкретная ошибка (по значению): errors.Is(err, ErrNotFound) — true если err это ErrNotFound или оборачивает его. errors.As проверяет по типу и извлекает: var ve *ValidationError; errors.As(err, &ve) — true если в цепочке есть *ValidationError, и заполняет ve. Is — для sentinel errors (значение). As — для typed errors (тип + данные). Оба ходят по цепочке Unwrap. Не используй == для сравнения ошибок — используй Is.

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

Что такое алерты и как их настроить?