Skip to main content

异常处理

使用defer+recover捕获panic处理 实例:

defer func() {
if err := recover(); err != nil {
println("错误:", err)
}
}()

例子: 使用go开启协程异常处理, 如果某条协程出现问题时不影响主线程运行

package main

import (
"fmt"
"time"
)

func main() {
go testErr()
go fn1()

time.Sleep(time.Second * 4)
}

func testErr() {
defer func() {
if err := recover(); err != nil {
println("错误: ", err)
}
}()
panic("err")
}

func fn1() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}