Golang有多个defer的情况

xiaoxiao2021-02-27  262

有多个defer时,return后先运行最后定义的defer,后进先出,栈的运行顺序 package main   import "fmt" import "log" func main(){ defer func() { fmt.Println("-------") }() defer func() { if err := recover(); nil != err { fmt.Println("=======") } }() foo() defer func() { fmt.Println("++++++++") }() }   func foo(){ fmt.Println("111") log.Panic("A") fmt.Println("222") } output: 111 2017/05/04 16:18:53 A ======= ------- recover()的结果只能被调用一次
转载请注明原文地址: https://www.6miu.com/read-9237.html

最新回复(0)