异常处理
使用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)
}
}