首页 > 解决方案 > 错误处理:提取错误上下文

问题描述

我有一个返回的函数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这里为每种类型的错误创建不同的类型 ()?

标签: go

解决方案


推荐阅读