error是一个用于标准错误处理的接口,是内建的接口类型
type error interface{
Error() string
}
errors包
提供了New方法创建error结构体
Errorf函数
fmt中有一个返回error结构体的方法Errorf,内部使用errors包的New方法实现
panic
当遇到不可恢复的错误状态的时候,如数组访问越界、空指针引用等,这些运行时错误会引起panic异常。
创建panic
panic内置函数支持任何参数值
func panic(v interface{})
recover
recover用于从panic状态中恢复并重新获得流程控制权
func recover() interface{}
recover函数只在defer调用的函数中有效
defer func(){
if err:= recover();err !=nil{
fmt.Println(rcover())
}
}