Go中较不详细的错误处理?

时间:2018-04-23 19:13:06

标签: go

我有一些Go代码使用" database / sql"来查询数据库。包。大多数这些函数都返回:result, errrows, err

因此,你最终得到了许多像这样重复的块:

if err != nil {
  // Handle Error
}

我已经看过"清洁"仅返回错误的函数的代码:

if err := SomeFunc(); err != nil {
  // Handle Error
}

我无法使用这些函数执行此操作,因为稍后当我需要在另一个查询函数中访问变量时,变量会被捕获到范围内。

有没有办法清理这个代码?

1 个答案:

答案 0 :(得分:4)

如果他们使用if:=区块中声明,则他们只会被限制在范围内。如果您在if之外声明它们,则它们位于外部范围内:

var err error
var result SomeResultType
if result,err = SomeFunc(); err != nil {
    // Handle error
}
// Do something with result (or error if you want)