Карточка 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 ошибок.
Предыдущий вопрос
recover и паника в другой горутине
Следующий вопрос
Чем %v отличается от %w в fmt.Errorf