go中多个panic如何被recover

func case() {
// 连续调用panic,仅最后一个会被recover捕获。
// 输出 case recovered from you are lucky
// 输出 no panic
defer func() {
for {
if err := recover(); err != nil {
fmt.Println("case recovered from ", err)
} else {
fmt.Println("no panic")
break
}
}
}()

defer func() {
panic("you are lucky")
}()

panic("i am lucky")
}
posted @ 2025-02-18 09:08  仁义礼智信的  阅读(18)  评论(0)    收藏  举报