下面这段代码输出的内容
package main
import (
"fmt"
)
func main() {
defer_call()
}
func defer_call() {
defer func() { fmt.Println("打印前") }()
defer func() { fmt.Println("打印中") }()
defer func() { fmt.Println("打印后") }()
panic("触发异常")
}
下面这段代码输出的内容
package main
import (
"fmt"
)
func main() {
defer_call()
}
func defer_call() {
defer func() { fmt.Println("打印前") }()
defer func() { fmt.Println("打印中") }()
defer func() { fmt.Println("打印后") }()
panic("触发异常")
}
`单行代码`
打印后
打印中
打印前
panic: 触发异常
打印后 打印中 打印前 panic: 触发异常
打印后
打印中
打印前
panic: 触发异常
Mark.
打卡
mark
mark 当出现panic时,也会执行defer。
遇 defer 关键字 后进先出
题目重复了 看到29天前我的回复了 哈哈
mark
ok
后 中 前 异常
当出现 panic 语句的时候,会先按照 defer 的后进先出的顺序执行,最后才会执行panic。
mark
答案:
打印后 打印中 打印前 panic: 触发异常
defer都执行完才真正退出当前func
打卡
踩坑打卡
mk
后中前异常
defer 的执行顺序是后进先出。当出现 panic 语句的时候,会先按照 defer 的后进先出的顺序执行,最后才会执行panic。
return和panic的内容最后出,先弹出defer
mark
m
打印后 打印中 打印前 panic: 触发异常
mark.......
mark
mark
你好,这个怎么可以看历史的题目呢
mark
当出现 panic 语句的时候,会先按照 defer 的后进先出的顺序执行,最后 才会执行panic
打卡
1
11111111111111
哈哈哈,可以这么变化下,感觉会误导很多人:
当出现 panic 语句的时候,会先按照 defer 的后进先出的顺序执行,最后才会执行panic。
mark
当出现 panic 语句的时候,会先按照 defer 的后进先出的顺序执行,最后才会执行panic。
mark