Go 错误处理
代码
//Go 语言中没有try catch这样麻烦的异常捕获方法
//如果需要捕获异常的话需要使用 defer panic recover() 来实现
func main() {
fmt.Println("c")
defer func() { // 必须要先声明defer,否则不能捕获到panic异常
fmt.Println("d")
if err := recover(); err != nil {
fmt.Println(err) // 这里的err其实就是panic传入的内容
}
fmt.Println("e")
}()
f() //开始调用f
fmt.Println("f") //这里开始下面代码不会再执行
}
func f() {
fmt.Println("a")
panic("异常信息")
fmt.Println("b") //这里开始下面代码不会再执行
}
-------output-------
c
a
d
异常信息
e
总结
一旦出现了错误,将会调用panic系列函数 -> 退出当前gorouting -> defer 调用出栈
标签:defer,handle,err,fmt,Println,Go,panic From: https://www.cnblogs.com/sqmw/p/17191113.html