如果你写过任何 Go 代码,你可能遇到过内置error类型。Go 代码使用error值来指示异常状态。例如,函数在打开文件失败时os.Open返回一个非零值。error
func Open(name string) (file *File, err error)
下面的代码用于os.Open打开一个文件。如果发生错误,它会调用log.Fatal打印错误消息并停止。
f, err := os.Open("filename.ext")
if err != nil {log.Fatal(err)
}
// do something with the open *File f
仅了解类型这一点,您就可以在 Go 中完成很多工作error,但在本文中,我们将仔细研究error并讨论 Go 中错误处理的一些良好实践。
该error类型是接口类型。变量error表示可以将自身描述为字符串的任何值。这是接口的声明:
type error interface {Error() string
}