recover函数捕获异常
package main
import (
//"fmt"
"time"
)
func test () {
var m map[string]int
m["abcd"] = 1234
}
func main () {
for i := 0; i < 100; i++ {
go test()
}
time.Sleep(10 * time.Second)
}
不使用recover(),会直接panic影响后面的进程

2.使用recover()
//recover来捕获异常
package main
import (
"fmt"
"time"
)
func test () {
//使用recover来捕获异常
defer func () {
if err := recover(); err != nil {
fmt.Println("panic", err)
}
}()
var m map[string]int
m["abcd"] = 1234
}
func main () {
for i := 0; i < 100; i++ {
go test()
}
time.Sleep(10 * time.Second)
}

进程不会panic

浙公网安备 33010602011771号