Size: a a a

2021 June 18

AB

Andrey Burov in Go-go!
не надо нам такого
источник

AB

Andrey Burov in Go-go!
можно еще
switch true {
  case errors.Is(...), errors.Is():
// lala
  case errors.Is(...), errors.Is():
// blabla
}

замутить
источник

А

Антоха in Go-go!
Да, как варик
источник

ЛА

Локоть Анатолий... in Go-go!
func variadicErrIs(targetErr err, err ...error) bool {
    for i := range err {
          if errors.Is(err[i], targetErr) {
                return true
          }
    }
    return false
}

if variadicErrIs(ErrNotFound, err1, err2) {
   // ...
}

к сожалению пришлось порядок аргументов поменять, иначе variadic не изобразить
источник

AB

Andrey Burov in Go-go!
жуть какая
источник

AE

Alexey Ermakov in Go-go!
а зачем .Is делать, если ошибки не оборачиваются?
источник

AB

Andrey Burov in Go-go!
источник

AB

Andrey Burov in Go-go!
err == что-то там - это прошлый век
источник

ЛА

Локоть Анатолий... in Go-go!
если проверять на Is , то в любой момент можно начать оборачивать
источник

ЛА

Локоть Анатолий... in Go-go!
оборачивание ошибок позволяет на выходе получить нечто вроде стека функций, через которые ошибка прошла
источник

AE

Alexey Ermakov in Go-go!
ну, так оно само разворачивает всё же, разве нет?
источник

AB

Andrey Burov in Go-go!
источник

ЛА

Локоть Анатолий... in Go-go!
errors.As эквивалентен ==, если очень хочется строгую проверку,
а еще есть errors.Unwrap, который вернет ошибку с самого дна стека
источник

AB

Andrey Burov in Go-go!
Error AS превращает err в то что хочешь... если может
источник

AB

Andrey Burov in Go-go!
*стека... там не стек всё же, а wrapping
источник

AE

Alexey Ermakov in Go-go!
я видимо вопрос не понял выше, с примером с циклом по ошибкам =)
источник

AB

Andrey Burov in Go-go!
забейте =)
источник

AE

Alexey Ermakov in Go-go!
пока учусь - забивать проблематично )
недавно как раз читал про ошибки в 1.13, пробую где нужно fmt.Errorf + %w применять - по этому тема актуальная )
источник

ЛА

Локоть Анатолий... in Go-go!
перечитаю вашу ссылку, похоже с As у меня понимание отличается
источник

AB

Andrey Burov in Go-go!
Мы с тобой лично знакомы ;)
источник