17.错误处理¶
Go语言中,错误处理是按照惯例,将一个可能出错的函数的最后一个返回值来表示是否出错,如果不为nil
,即表示出错。
Go语言创始人这样描述错误:error is a value 。
按照惯例,对于可能出错的函数,我们一般这样调用:
error类型¶
go语言对于错误有特定类型,名为error
。实际上error
是一个接口,只要实现了这样一个函数:Error()
,且返回一个string
,就满足该接口。
error
包中有一个New()
函数,接受一段字符串作为错误信息,返回一个error
类型变量指针。
错误类型可以使用Print()
函数打印。
panic与recover¶
go语言有一个类似raise Error
的机制,就是panic
,panic
的使用很简单,直接调用下列函数即可
其中的参数可以是任意类型,具体细节参考其他资料。
go语言不推荐使用panic,应当优先使用err
错误值。
如果想使用类似except
的处理机制,需要defer recover()
,或者defer
的函数中包含recover
调用。程序将在抛出panic
、执行defer recover()
后继续运行。