Sobes.tech
Middle+

Hogyan dolgozzunk hibákkal Go-ban, hogyan csomagoljuk be a hibát?

sobes.tech MI

Válasz az MI-től

В 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.

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