Карточка Junior Ошибки, defer, panic и recover обновлено

Sentinel-ошибка

Вопрос

Что такое sentinel-ошибка и как её проверять?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Заранее созданное значение ошибки на уровне пакета: var ErrNotFound = errors.New("not found"), как io.EOF. Проверять через errors.Is(err, ErrNotFound), чтобы работало и с обёрнутыми ошибками.

Ответ

Заранее созданное значение ошибки на уровне пакета: var ErrNotFound = errors.New("not found"), как io.EOF. Проверять через errors.Is(err, ErrNotFound), чтобы работало и с обёрнутыми ошибками.

Разбор

Sentinel становится частью API пакета. Если нужны данные (поле, код), делают свой тип ошибки и проверяют через errors.As.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме