符合Go语言习惯的做法是使用一个独立、明确的返回值来传递错误信息。这与Java、Ruby使用的异常(exception)以及在C语言中有时用到的重载(overloaded)的单返回/错误值有着明显的不同。Go语言的处理方式能清楚的知道哪个函数返回了错误,并使用跟其他(无异常处理的)语言类似的方式来处理错误。
按照管理,错误通常是最后一个返回值并且是error类型,它是一个内建的接口
errors.New使用给定的错误信息构造一个基本的error值。
返回错误值nil代表没有错误
你还可以通过实现Error()方法来自定义error类型。这里使用自定义错误类型来表示上面例子中的参数错误。
在这个例子中,我们使用&argError语法来建立一个新的结构体,并提供了arg和prob两个字段的值
下面的两个循环测试了每一个会返回错误的函数。注意,在if的同一行进行错误检查,是Go代码中的一种常见用法。
如果你想在程序中使用自定义错误类型的数据,你需要通过类型断言来得到这个自定义错误类型的实例。
上一篇: 21、Embedding
下一篇: 23、协程