我试图了解是否有更好的方法来简化 golang 中重复出现的 switch 案例。我有一个可以返回多个错误的方法,但我对 3 个特定错误感兴趣,我需要返回一个特定的带注释的错误而不是一般错误。但是case1,case2返回err1,err2但是在case3的情况下,我需要使用不同的参数调用相同的方法,并且如果方法返回err1,err2也需要处理。如果您有任何建议,请提供。目前我正在以下面的方式处理,但试图看看我是否可以简化调用 case1、case2 的重复性。 _, err := doSomething(var1) if err != nil { switch err.Error() { case case1: return err1 case case2: return err2 case case3: _, err := doSomething(var2) switch err.Error() { case case1: return err1 case case2: return err2 default: return err } default: return err如果您需要更多详细信息或需要对我的问题本身进行更多说明,请告诉我。
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
翻译特殊情况的错误。继续普通处理。
_, err := doSomething(var1)
if err != nil {
if err.Error() == case3 {
_, err = doSomething(var2)
}
switch err.Error() {
case case1:
return err1
case case2:
return err2
default:
return err
}
}
- 1 回答
- 0 关注
- 180 浏览
添加回答
举报
0/150
提交
取消