У меня есть функция, которая возвращает 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
) для каждого типа ошибки здесь?