欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

利用golang實現(xiàn)封裝trycatch異常處理實例代碼

前言

在成都網(wǎng)站建設、成都網(wǎng)站設計中從網(wǎng)站色彩、結構布局、欄目設置、關鍵詞群組等細微處著手,突出企業(yè)的產(chǎn)品/服務/品牌,幫助企業(yè)鎖定精準用戶,提高在線咨詢和轉化,使成都網(wǎng)站營銷成為有效果、有回報的無錫營銷推廣。成都創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站建設10余年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。

社區(qū)不少人在談論 golang 為毛不用trycatch模式,而采用苛刻的recovery、panic、defer組合….    從網(wǎng)上整了一個trycatch包,感覺不錯,拿出來分享下…下面話不多說,來一起看看詳細的介紹。

示例代碼

package main
 
import (
 "reflect"
)
 
type TryCatch struct {
 errChan  chan interface{}
 catches  map[reflect.Type]func(err error)
 defaultCatch func(err error)
}
 
func (t TryCatch) Try(block func()) TryCatch {
 t.errChan = make(chan interface{})
 t.catches = map[reflect.Type]func(err error){}
 t.defaultCatch = func(err error) {}
 go func() {
 defer func() {
 t.errChan <- recover()
 }()
 block()
 }()
 return t
}
 
func (t TryCatch) CatchAll(block func(err error)) TryCatch {
 t.defaultCatch = block
 return t
}
 
func (t TryCatch) Catch(e error, block func(err error)) TryCatch {
 errorType := reflect.TypeOf(e)
 t.catches[errorType] = block
 return t
}
 
func (t TryCatch) Finally(block func()) TryCatch {
 err := <-t.errChan
 if err != nil {
 catch := t.catches[reflect.TypeOf(err)]
 if catch != nil {
 catch(err.(error))
 } else {
 t.defaultCatch(err.(error))
 }
 }
 block()
 return t
}
 
type MyError struct {
 error
}
 
func main() {
 TryCatch{}.Try(func() {
 println("do something buggy")
 panic(MyError{})
 }).Catch(MyError{}, func(err error) {
 println("catch MyError")
 }).CatchAll(func(err error) {
 println("catch error")
 }).Finally(func() {
 println("finally do something")
 })
 println("done")
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。

新聞名稱:利用golang實現(xiàn)封裝trycatch異常處理實例代碼
瀏覽路徑:http://aaarwkj.com/article10/jeepdo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、商城網(wǎng)站、響應式網(wǎng)站、云服務器、做網(wǎng)站、營銷型網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設
一区二区三区视频在线国产| 日本欧美国产一区二区| 国产有码视频一区二区三区| 亚洲情色精品国产一区| 91福利免费在线看| 欧美在线观看日韩精品| 夜色一区二区av人片| 国产伦理在线观看一区二区| 国产白丝扒开做爽爽爽网站| 69精品一区二区蜜桃视频| 国产成人综合亚洲乱淫.| 免费女同一区二区三区| 亚州欧美制服另类国产| 中文字幕91在线播放| 黑人巨大欧美一区二区| 亚洲欧美日韩精品区| 免费观看亚洲视频一区二区三区 | 中文字幕人妻熟女人妻| 婷婷亚洲五月伊人91| 日本午夜福利免费在线播放| 亚洲巨大黑人一区二区三区| 亚洲国产精品一区二区av| 欧洲亚洲国产一区二区| 91麻豆精品一区二区三区| 精品视频日韩在线观看| 亚洲最大av在线精品国产| 国产一级特黄大片特爽| 中文字幕乱码伊人三级| 亚洲午夜av久久乱码| 国产精品一区二区久久蜜桃麻豆| 久久久亚洲成人国产av| 熟女少妇精品一区二区三区| 97免费公开在线观看| 91在线视频麻豆国产| 午夜啪视频免费在线观看| 成人性生交免大片免费| 国产传媒网约在线观看| 婷婷色悠悠,色悠悠激情啪啪| 欧美系列诱惑性国产精品| 久久热视频这里有精品| 91欧美日韩精品在线|