五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Go語言的學(xué)習(xí) —— panic 和 recover

2023-07-19 12:13 作者:巷陌雨季  | 我要投稿

本專欄僅作為Up本人對于學(xué)習(xí)Go語言過程中的一些記錄和心得,如有錯誤,還請指出~~

Golang

Less is More.

Go的異常處理

正如前面所提到的“Less is More”, Go語言追求簡潔優(yōu)雅,所以Go語言并不支持try...catch...finally這種異常處理。Go語言區(qū)分了錯誤和異常,在Go語言中,錯誤相當(dāng)于Java中"Exception",而異常則是需要人工介入的重大錯誤。既然程序是人寫的,那難免會產(chǎn)生bug,那當(dāng)程序產(chǎn)生異常時,程序員要怎么去處理這些異常呢。這里,我們就需要用到panic了。

什么是panic

When you panic in Go, you’re freaking out, it’s not someone elses problem, it’s game over man.

Panic這個單詞的意思是恐慌,在Go語言中作為關(guān)鍵字可以理解為程序運行時恐慌。在Go協(xié)程中使用panic,會終結(jié)并殺死該協(xié)程。

比方說:


我們用菜鳥教程里的在線工具(https://c.runoob.com/compile/21/)嘗試去運行一下上面的代碼,我們會發(fā)現(xiàn)程序輸出了“Link Start!”,隨后便是被“panic”了,并沒有輸出最后的“Link Failed...”。

輸出1

在某些情況下,我們并不想直接結(jié)束這個協(xié)程,那這時就輪到recover上場了。


用recover來控制panic

recover,顧名思義就是恢復(fù),用來控制一個goroutine的panicking行為,捕獲panic,從而影響應(yīng)用的行為。但必須在代碼中先聲明defer,否則不能正常捕獲panic。

舉個栗子:

OK,我們發(fā)現(xiàn)在輸出中已經(jīng)沒有了panic的身影。相反,我們可以知道panic被捕獲了。

輸出2


END

相關(guān)文章:

https://zhuanlan.zhihu.com/p/87345297

https://zhuanlan.zhihu.com/p/373653492

https://zhuanlan.zhihu.com/p/222367644

https://juejin.cn/post/7186269730934620220

Go語言的學(xué)習(xí) —— panic 和 recover的評論 (共 條)

分享到微博請遵守國家法律
化隆| 武隆县| 泽库县| 毕节市| 丰县| 福泉市| 和林格尔县| 伊金霍洛旗| 龙口市| 洪泽县| 浑源县| 嵊州市| 上栗县| 海林市| 长白| 专栏| 邢台市| 博野县| 芮城县| 蚌埠市| 车致| 湟源县| 银川市| 互助| 化德县| 密云县| 裕民县| 息烽县| 汨罗市| 突泉县| 体育| 苍梧县| 九江县| 邹城市| 永顺县| 安丘市| 江川县| 宿州市| 合江县| 龙岩市| 揭西县|