ошибку Num1Err? Или когда оборачиваешь ошибку другой ошибкой используя %w, то доступ к первой теряется? Первый println выдает false, второй соответственно true
var Num1Err = errors.New("error #1")
var Num2Err = errors.New("error #2")
func Test_Errors(t *testing.T) {
var err error
err = errors.New("something wrong")
err = fmt.Errorf("%v: %w", err, Num1Err)
err = fmt.Errorf("%v: %w", err, Num2Err)
fmt.Println(errors.Is(err, Num1Err))
fmt.Println(errors.Is(err, Num2Err))
}
вот и я чёт сообразить не могу...
Аппендить ошибки?
Массив ошибок возвращать? А так делают? Не встречал подобного
Да. А почему-бы и нет? Тем более я где-то такое видел. Возможно в каком-то логере.
для таких вещей есть muliterr и еже с ними
Хм, обращу внимание, а если все таки средствами языка не прибегая к библиотекам, как с этим обходятся?
А что у вас за логика там, можно подробнее? Почему слою сверху нужно знать что там за ошибка была самой первой?
Ну, условно http слой должен как то реагировать на возникновение ошибок которые формируются в слое service, а они оттуда прилетают уже обернутые и вот как-то адекватно реагировать надо и слать клиенту логичные и осмысленные вещи, а не раскрывать кишки, что монга к примеру не справилась с вставкой (я условно привел пример)
https://t.me/gogolang/446071 а такое не подойдет?
так ты оборачиваешь Num2Err
я так понял, что нужно обе ошибки обернуть
мне кажется, товарищу надо "всплывающую" ошибку оборачивать по выходу из цепочки вызовов
Обсуждают сегодня