go panic時(shí)如何讓函數(shù)返回?cái)?shù)據(jù)?
更新時(shí)間:2019年04月09日 09:46:35 作者:stpeace
今天小編就為大家分享一篇關(guān)于go panic時(shí)如何讓函數(shù)返回?cái)?shù)據(jù)?,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
現(xiàn)在有這樣一個(gè)問題:某函數(shù)如果正常執(zhí)行,返回0,如果panic,則返回1,怎么搞呢?
package main import "fmt" func test() int { defer func() { if err := recover(); err != nil { return 1 } }() var p *int *p = 0 return 0 } func main() { fmt.Println("ret is", test()) for {} }
這樣顯然不行,因?yàn)槟莻€(gè)return 1是針對(duì)匿名函數(shù)的, 而非test函數(shù)。
來看一個(gè)巧妙的方法:
package main import "fmt" func test() (a int) { defer func() { if err := recover(); err != nil { a = 1 } }() var p *int *p = 0 return 0 } func main() { fmt.Println("ret is", test()) for {} }
OK.
不多說。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
golang數(shù)組-----尋找數(shù)組中缺失的整數(shù)方法
這篇文章主要介紹了golang數(shù)組-----尋找數(shù)組中缺失的整數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12