在golang中重置错误是不好的做法吗?

时间:2017-12-22 11:32:39

标签: go error-handling

在将字符串解析为文本时,我希望任何不可解析的字符串导致零时间,然后继续。

passwordLastUsed, err = time.Parse(time.RFC3339, record[lastUsed])
if err != nil {
    err = nil
    passwordLastUsed = time.Time{}
}

这段代码看起来有些混乱,而且这个代码很糟糕。' linter为' err = nil'返回此信息。语句:

  

警告:对err(ineffassign)的无效分配

有没有更好的方法来处理这个问题,还是应该忽略linter?

1 个答案:

答案 0 :(得分:6)

重置错误变量是不错的做法,如果那是你想做的事。

设置以后未使用的变量是不好的做法 - 这就是警告的内容。

可能没有理由重置错误,因为您正在执行,因为在if阻止err之后,总是为{{ 1}}。

如果你只是在某些情况下重置,这确实有意义。一个常见的例子:

nil