错误
Go使用error
来标识错误状态。
同fmt.Stringer
一样,error类型
也是个内建接口。
|
|
通常函数会返回一个error
值,调用它的代码应判断这个错误是否等于nil
来进行错误处理。
|
|
error
为nil时表示成功;非nil
的error表示错误
如:12345678910111213141516171819202122232425package mainimport ( "fmt" "time")type MyError struct { When time.Time What string}func (e *MyError) Error() string { return fmt.Sprintf("at %v, %s", e.When, e.What)}func run() error { return &MyError{time.Now(), "it didn't work",}}func main() { if err := run(); err != nil { fmt.Println(err) // }}
运行输出结果:1at 2017-10-25 09:31:30.9208855 +0800 CST, it didn't work