recover(错误捕获)
应⽤场景,如果某个goroutine panic了,⽽且这个goroutine⾥⾯没有
捕获(recover),那么整个进程就会挂掉。所以,好的习惯是每当go产
⽣⼀个goroutine,就需要写下recover
func cacl(){
defer func(){
err := recover() //如果不捕获这个错误,则程序运行时会panic
if err != nil{
fmt.Println(err)
}
}()
var p *int
*p = 100
}
func main(){
go cacl()
time.Sleep(time.Second*4)
fmt.Println("exits")
}

浙公网安备 33010602011771号