課程
/后端開發
/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 回答為什么defer調用recover要在panic之前,放到后面就報錯
1 回答interface{}(myDog).(Pet)這個語句什么意思?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-01-05
//前面
fmt.Println("Enter main")
outerFunc()
//后面
fmt.Println("Quit main")
panic在 outerFunc()方法里,你寫在后面的位置,panic導致程序崩潰,系統去找defer的時候,還沒有執行到,自然也就找不到.
應該是defer 這個語句,只有程序執行到這一行才有效吧.