Open utterances-bot opened 3 years ago
func defer_call() { defer func() { fmt.Println("打印前") }()
defer func() {
fmt.Println("打印中")
}()
defer func() {
fmt.Println("打印后")
}()
panic("触发异常")
}
func main() { defer_call() }
// defer的执行顺序
defer是后进先出; panic需要等defer结束后,才会向上传递。出现panic恐慌的时候,会先按照defer的后入先出的顺序执行,最后才会执行panic;
defer和panic的执行顺序 - Wallis
之前碰到的一个Golang面试题,关于defer和panic的执行顺序究竟是怎么样的,到底谁先执行谁后执行 ,来回顾验证学习一下; Defer, panic 和 recover Defer
https://bomir.top/post/defer-panic-order/