Обработка ошибок: извлечение контекста ошибки - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть функция, которая возвращает error:

func foo(i int) error {
    err := errors.New("error here")

    if i == 1 {
        return errors.Wrap(err, "one")
    }

    if i == 2 {
        return errors.Wrap(err, "two")  
    }

    return nil
}

Я хочу обработать ошибку в вызывающей функции, но для этого мне нужно знать контекст ошибки.Примерно так:

err := foo(i) 

switch err.getContext() {
  case "foo":
  case "bar":
}

Я нашел causer интерфейс, но я не знаю, как его использовать здесь.

Или мне нужно создатьразличные типы (struct) для каждого типа ошибки здесь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...