defer,recover:
package main import ( "fmt" "time" ) func test() { defer func() { //defer中使用recover来捕获异常 //defer在函数执行结束最后,执行该方法 if err := recover(); err != nil { fmt.Println(err) } }() b := 0 a := 100 / b fmt.Println(a) return } func main() { for { test() time.Sleep(time.Second) } var a []int a = append(a, 10, 20, 383) a = append(a, a...) fmt.Println(a) }
panic:
package main import ( "errors" "fmt" "time" ) func initConfig() (err error) { return errors.New("init config failed") } func test() { //defer func() { // //defer中使用recover来捕获异常 // //defer在函数执行结束最后,执行该方法 // if err := recover(); err != nil { // fmt.Println(err) // } //}() err := initConfig() if err != nil { panic(err) } return } func main() { for { test() time.Sleep(time.Second) } var a []int a = append(a, 10, 20, 383) a = append(a, a...) fmt.Println(a) }
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)