您的位置:首页 > Web前端

Go错误定义和处理error&defer&panic&recover

2019-04-13 16:46 471 查看

error defer panic recover

package main

import (
"errors"
"fmt"
"os"
)
/**
defer: 最后执行
panic: 向上级返回错误
recover:捕获panic 处理后 panic就此结束 不在向上传递
*/
func main() {
err := errors.New("创建错误")
fmt.Errorf("打印错误")

defer func() {//放在在栈中 多个defer 按照先进后出执行    一般用于关闭连接等收尾工作
if error := recover();error != nil{//recover()捕获panic
fmt.Println("出现错误,错误是:",error)
}
}()

panic(err)//结束程序 输出错误 若是有defer 执行defer后面的    一般程序尽量不用panic
os.Exit(0)//程序立即结束 不执行defer后面内容

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: