据我了解,当恐慌恢复时,我希望程序退出并表现出正常行为,但事实并非如此。我期望最后一行打印“程序结束”是否正确?如果出现运行时错误,它不会被打印,是吗?
package main
import (
"fmt"
)
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Printf("Cause of panic ==>>, %q\n", r)
}
}()
f(3)
fmt.Println("End of program")
}
func f(x int) {
fmt.Printf("f(%d) is called.\n", x) //panic triggered when x==0
// defer called in reverse order in case of panic
defer fmt.Printf("defer %d\n", x+0/x)
f(x-1)
}
侃侃尔雅
元芳怎么了
相关分类