> Для чего используется пакет 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)ищет первую ошибку в цепочке, которая может быть приведена к заданному типу.
Пример использования:
GOvar 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, обеспечивающая их создание, обёртывание и декомпозицию.
> Похожие задачи по Go
Как уведомить горутины в Go о необходимости завершения при получении первого результата
Используешь ли багтрекинговые системы
Как реализуется раздача заданий и синхронизация горутин в воркерпуле в Go
Для чего нужен type switch в Go
> Похожие задачи по backend
Как уведомить горутины в Go о необходимости завершения при получении первого результата
Используешь ли багтрекинговые системы
Как реализуется раздача заданий и синхронизация горутин в воркерпуле в Go
Для чего нужен type switch в Go
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью