go語言異常panic和恢復(fù)recover用法實(shí)例
本文實(shí)例講述了go語言異常panic和恢復(fù)recover用法。分享給大家供大家參考。具體分析如下:
go中可以拋出一個(gè)panic的異常,然后在defer中通過recover捕獲這個(gè)異常,然后正常處理
在一個(gè)主進(jìn)程,多個(gè)go程處理邏輯的結(jié)構(gòu)中,這個(gè)很重要,如果不用recover捕獲panic異常,會導(dǎo)致整個(gè)進(jìn)程出錯(cuò)中斷
import "fmt"
func main() {
defer func() { //必須要先聲明defer,否則不能捕獲到panic異常
fmt.Println("c")
if err := recover(); err != nil {
fmt.Println(err) //這里的err其實(shí)就是panic傳入的內(nèi)容,55
}
fmt.Println("d")
}()
f()
}
func f() {
fmt.Println("a")
panic(55)
fmt.Println("b")
fmt.Println("f")
}
希望本文所述對大家的Go語言程序設(shè)計(jì)有所幫助。
相關(guān)文章
Golang的Fork/Join實(shí)現(xiàn)代碼
Fork/Join本質(zhì)上是一種任務(wù)分解,將一個(gè)很大的任務(wù)分解成若干個(gè)小任務(wù),然后再對小任務(wù)進(jìn)一步分解,直到最小顆粒度,然后并發(fā)執(zhí)行,對Golang的Fork/Join實(shí)現(xiàn)代碼感興趣的朋友跟隨小編一起看看吧2023-01-01
基于golang channel實(shí)現(xiàn)的輕量級異步任務(wù)分發(fā)器示例代碼
這篇文章主要給大家介紹了關(guān)于基于golang channel實(shí)現(xiàn)的輕量級異步任務(wù)分發(fā)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
基于Golang實(shí)現(xiàn)YOLO目標(biāo)檢測算法
目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域的重要任務(wù),它不僅可以識別圖像中的物體,還可以標(biāo)記出物體的位置和邊界框,YOLO是一種先進(jìn)的目標(biāo)檢測算法,以其高精度和實(shí)時(shí)性而聞名,本文將介紹如何使用Golang實(shí)現(xiàn)YOLO目標(biāo)檢測算法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2023-11-11
在ubuntu下構(gòu)建go語言開發(fā)環(huán)境的方法
這篇文章主要介紹了在ubuntu下構(gòu)建go語言開發(fā)環(huán)境的方法,需要的朋友可以參考下2014-10-10
IdeaGo啟動報(bào)錯(cuò)Failed to create JVM的問題解析
這篇文章主要介紹了IdeaGo啟動報(bào)錯(cuò)Failed to create JVM的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11

