在Go中习惯性地过滤错误

Mat*_*ner 5 error-handling runtime-error go

errorGo中的类型非常广泛,包含的实际类型可能因平台和版本而异.是否习惯于过滤错误字符串值所期望的错误,error.Error()

例如:

_, err := conn.Write(b)
if err != nil {
    if !strings.Contains(err.Error(), "peer reset") {
        log.Print(err)
    }
    return
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

Mat*_*ner 0

errors.Iserrors.As添加到最新版本的 Go 现在可以解决这个问题。