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