为了账号安全,请及时绑定邮箱和手机立即绑定

defer语句的拦截运营是错误的位置

在实例中的代码 defer对于拦截panic函数的位置是怎么确定的?当我把defer放在即将出错的行数前面,则能出现实例中正确的输出,但是后面就会在控制台报错

正在回答

1 回答

//前面
fmt.Println("Enter main")

outerFunc()
//后面

fmt.Println("Quit main")

panic在 outerFunc()方法里,你写在后面的位置,panic导致程序崩溃,系统去找defer的时候,还没有执行到,自然也就找不到.
应该是defer 这个语句,只有程序执行到这一行才有效吧.

0 回复 有任何疑惑可以回复我~
#1

糊你大熊脸 提问者

非常感谢!
2018-01-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

defer语句的拦截运营是错误的位置

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信