《Go 语言原本》

第 17 章 错误

定义错误而消除错误。
Define errors out of existence.
-- John Ousterhout, "A philosophy of Software Design"

错误是什么?它从哪里来?到哪里去?当我们出现错误时,应该为其做些什么? 这些问题并不简单,但一旦回答了这些问题我们便能不再惧怕错误。 「错误」一词在不同编程语言中存在着不同的理解和诠释。 在 Go 语言里,错误被视普普通通的 —— 值。正因为值的特殊性, 从而 Go 语言允许程序员能够针对不同场景下的错误自行进行不同层次的高层抽象, 但又进一步要求程序员将得到的错误立即进行处理。 这一设计决定一方面给了程序员以极大的自由,但另一方面又在不断的困扰着程序员们, 使他们在拿到一个错误时,变得不知所措。