например сервис записывает сущность в БД. Ошибка в функции записи в БД, вернёте просто err или c wrap, чтобы лог ошибки информативнее был?
Лично я всегда думаю так. Если буду смотреть логи, пойму ли, что ошибка именно тут
всегда, golangci-lint (wrapcheck) ругается иначе
Удобно, если конечная обработка - это простое log.Fatal(err), а приходит из глубоко вложенных методов. Тогда на каждом уровне врапаешь fmt.Errorf("methodName funcName error : %s", err.Error()) и потом по логу легко найти, где что упало
Это понятно. Я просто имею тенденцию наворачивать и мудрить, и вот спрашиваю на сколько реально народ врапит. А то я уже видел ошибки типа "сервер: получение сообщение от транспорта: endpoint: service: storage: another storage: unmarshal" Оно, конечно, классно, но длинно :)
А нет, вообще вот так отдавал на гейтвей: http.Error(w, fmt.Sprintf("os.OpenFile error: %s", err.Error()), http.StatusInternalServerError) А не нем потом таким же образом заворачивал в новую строку с названием микросервиса, от которого она получена.
Обсуждают сегодня