课程
/后端开发
/Go
/Go语言第一课
在实例中的代码 defer对于拦截panic函数的位置是怎么确定的?当我把defer放在即将出错的行数前面,则能出现实例中正确的输出,但是后面就会在控制台报错
2017-12-21
源自:Go语言第一课 8-3
正在回答
//前面fmt.Println("Enter main")
outerFunc()//后面
fmt.Println("Quit main")
panic在 outerFunc()方法里,你写在后面的位置,panic导致程序崩溃,系统去找defer的时候,还没有执行到,自然也就找不到.应该是defer 这个语句,只有程序执行到这一行才有效吧.
糊你大熊脸 提问者
举报
Go语言入门教程,编程之必备知识扩散,打好Go语言编程基础
1 回答fallthrough语句仅能作为case语句中的最后一条语句出现。并且,包含它的case语句不能是其所属switch语句的最后一条case语句。没有理解这句话是什么意思
1 回答判断成功的语句弄错了吧?不拿这节分了。
5 回答什么叫做卫述语句
1 回答interface{}(myDog).(Pet)这个语句什么意思?
1 回答为什么defer调用recover要在panic之前,放到后面就报错