👁 В Go ошибку часто нужно не только зарегистрировать, но и передать с дополнительным контекстом. Это может быть полезно, когда ошибка происходит в глубокой функции, и важно передать больше данных, чтобы понять её причину.
📝 Вот как можно использовать стандартные средства Go для оборачивания ошибок с дополнительной информацией:
package main
import (
"fmt"
"errors"
)
// Функция для обработки ошибки с дополнительным контекстом
func someFunction() error {
// Возвращаем ошибку с добавлением контекста
return fmt.Errorf("что-то пошло не так в someFunction: %w", errors.New("ошибка соединения"))
}
func main() {
if err := someFunction(); err != nil {
// Обработка ошибки с контекстом
fmt.Println("Ошибка:", err)
}
}📌 Что происходит:
- Используем
fmt.Errorfс флагом%w, чтобы обернуть ошибку и добавить больше контекста - Это позволяет передавать ошибки и добавлять к ним описание, чтобы легко понять, где она возникла и как её обработать
- Мы можем использовать такую ошибку в верхнем слое и передать её дальше с деталями
❗️ Этот подход полезен для логирования и анализа ошибок в более крупных приложениях, когда важно отслеживать цепочку возникновения ошибок и добавлять в неё контекст. Применимо в продакшн-системах для лучшего мониторинга и диагностики.
tags: #go #разработка
❤️ @recura_tech



