Sobes.tech
Back to questions
Middle+
5

Как работать с ошибками в Go, как обернуть ошибку?

Companies where asked
МВидеоМВидео

Answer from AI

sobes.tech AI

В Go ошибки представлены типом error, который является интерфейсом с методом Error() string. Для обработки ошибок принято возвращать их из функций и проверять сразу после вызова.

Чтобы обернуть ошибку и добавить контекст, можно использовать пакет fmt с функцией fmt.Errorf и %w для обёртки, либо использовать сторонние библиотеки, например, pkg/errors.

Пример обёртки ошибки с fmt.Errorf:

if err := someFunc(); err != nil {
    return fmt.Errorf("someFunc failed: %w", err)
}

Это позволяет сохранить исходную ошибку и добавить дополнительное описание. Позже можно проверить наличие конкретной ошибки с помощью errors.Is или извлечь её с помощью errors.Unwrap.

Такой подход улучшает трассировку ошибок и упрощает диагностику проблем.