Go 关于错误处理的理念使得开发人员将错误纳入他们编写的大多数函数的一等公民。
大多数 Linter 或 IDE 都会发现您忽略了一个错误,并且在代码审阅期间,您的团队成员肯定会看到该错误。但是,在其他语言中,可能不清楚您的代码没有在 try catch 代码块中处理潜在的异常,因为在处理控制流方面是完全不透明的。
如果您以标准方式处理 Go 中的错误,您将获得以下好处:
没有隐藏的控制流
没有意外的未捕获异常日志炸毁您的终端(除了由于 panic 导致的实际程序崩溃)
可以完全控制代码中的错误,可以选择处理,返回和执行任何其他操作
func f() (value, error) 的语法不仅易于向新手讲解,而且在任何 Go 项目中都可确保一致性。
请务必注意,Go 的错误语法不会强迫您处理程序可能抛出的每个错误。Go 只是提供了一种模式,以确保您认为错误对于程序流至关重要,没有其他更多要求。在程序结束时,如果发生错误,并且使用 err != nil 来发现它,如果您的应用程序不对其执行任何操作,则您可能会遇到麻烦——Go 不会为你自动保存什么。
https://mp.weixin.qq.com/s/wYkta4h6OYUxKnlIZD7T_g
https://mp.weixin.qq.com/s/eHpRCh6B1Y_urDwYWJcyDQ
https://github.com/yolossn/query2metric/
golang 学习相关资料汇总
https://github.com/ardanlabs/gotraining/blob/master/reading/README.md