defer語句的攔截運(yùn)營是錯誤的位置
在實(shí)例中的代碼 defer對于攔截panic函數(shù)的位置是怎么確定的?當(dāng)我把defer放在即將出錯的行數(shù)前面,則能出現(xiàn)實(shí)例中正確的輸出,但是后面就會在控制臺報(bào)錯
在實(shí)例中的代碼 defer對于攔截panic函數(shù)的位置是怎么確定的?當(dāng)我把defer放在即將出錯的行數(shù)前面,則能出現(xiàn)實(shí)例中正確的輸出,但是后面就會在控制臺報(bào)錯
2017-12-21
舉報(bào)
2018-01-05
//前面
fmt.Println("Enter main")
outerFunc()
//后面
fmt.Println("Quit main")
panic在 outerFunc()方法里,你寫在后面的位置,panic導(dǎo)致程序崩潰,系統(tǒng)去找defer的時候,還沒有執(zhí)行到,自然也就找不到.
應(yīng)該是defer 這個語句,只有程序執(zhí)行到這一行才有效吧.