【发布时间】:2013-09-17 06:30:10
【问题描述】:
我目前正在学习围棋,我的一些代码如下所示:
a, err := doA()
if err != nil {
return nil, err
}
b, err := doB(a)
if err != nil {
return nil, err
}
c, err := doC(b)
if err != nil {
return nil, err
}
... and so on ...
这对我来说看起来有点不对,因为错误检查占用了大部分行。有没有更好的方法来进行错误处理?我可以通过一些重构来避免这种情况吗?
更新:感谢您的所有回答。请注意,在我的示例中,doB 取决于 a,doC 取决于 b,依此类推。因此,大多数建议的重构在这种情况下都不起作用。还有什么建议吗?
【问题讨论】:
-
我完全同意你的观点,因为它是如此常见且如此重复,应该有一种简单的方法来做到这一点,比如在错误之前添加一个 @ 暗示此代码将执行默认错误检查, 所以你可以说:“c, @err := doC(b)” 编译器会为你插入重复的代码
标签: go