Go学习——defer、panic
生活随笔
收集整理的這篇文章主要介紹了
Go学习——defer、panic
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
defer:
延遲到ret之前,通常用于IO的關(guān)閉 or 錯(cuò)誤處理。
在延遲出現(xiàn)的異常可以被后面的捕捉,但是只有最后一個(gè)。
defer可以多次,這樣形成一個(gè)defer棧,后defer的語(yǔ)句在函數(shù)返回時(shí)將先被調(diào)用
panic:
函數(shù)執(zhí)行的時(shí)候panic了,函數(shù)不往下走了,運(yùn)行時(shí)并不是立刻向上傳遞panic,而是到defer那,等defer的東西都跑完了,panic再向上傳遞。
func panic(v interface{}) func recover() interface{}defer recover() //無(wú)法捕捉所以可以在defer中用recover進(jìn)行抓捕。
而且recover必需在延遲調(diào)用內(nèi)才行。
參考:
http://www.cnblogs.com/ghj1976/archive/2013/02/11/2910114.html
https://github.com/qyuhen/book
轉(zhuǎn)載于:https://www.cnblogs.com/Przz/p/6816531.html
總結(jié)
以上是生活随笔為你收集整理的Go学习——defer、panic的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2017python学习的第五天:模块
- 下一篇: GitHub的实践