使用defer, panic, recover捕获异常
package main
import "fmt"
func main(){
defer func(){ //defer的作用就是在此函数运行完毕之后执行(无论是否正常运行)并且这个defer必须写在f()的前面,有兴趣知道为什么的可以留言
fmt.Println("a")
if err:=recover();err!=nil{
fmt.Println(err)
}
fmt.Println("b")
}()
f()
}
func f(){
fmt.Println("1")
panic(2)
fmt.Println("3")
fmt.Println("4")
}
输出结果:
1
a
2
b