> Для чего используется пакет errors в Go (Go)

Уровень: middle · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: Lamoda

Стек: Go

> Пример ответа

Пакет errors в Go предоставляет базовые функции для создания и работы с ошибками. Основное его применение:

  • Создание простых ошибок: errors.New("текст ошибки") возвращает значение типа error с заданным сообщением. Это самый простой способ вернуть ошибку из функции.

  • Обёртывание ошибок: начиная с Go 1.13, функция errors.Unwrap() позволяет извлекать вложенную ошибку из обёртки, а errors.Is() и errors.As() - проверять, является ли ошибка конкретным типом или значением, даже если она была обёрнута несколько раз. Это критически важно для построения цепочек ошибок без потери контекста.

  • Сравнение ошибок: errors.Is(err, target) проверяет, что err совпадает с target (или содержит его в цепочке обёрток). errors.As(err, target) ищет первую ошибку в цепочке, которая может быть приведена к заданному типу.

Пример использования:

GO
var ErrNotFound = errors.New("not found")
func GetData(id int) (string, error) {
if id <= 0 {
return "", fmt.Errorf("GetData: %w", ErrNotFound)
}
return "data", nil
}
// Проверка
_, err := GetData(-1)
if errors.Is(err, ErrNotFound) {
// обработка
}

Таким образом, errors - это основа для работы с ошибками в Go, обеспечивающая их создание, обёртывание и декомпозицию.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью