欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

前言

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

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

示例代碼

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")
}

總結(jié)

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

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

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

廣告

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

外貿(mào)網(wǎng)站建設(shè)
日本女优一色一伦一区二区三区| 亚洲国产日韩欧美三级| 成人日韩在线播放视频| 天海翼高清二区三区在线| 成人午夜视频精品一区| 欧美日韩精品综合在线| 亚洲一区二区三区四区性色av| 国产又粗又猛又大爽又黄| 成人免费在线视频大香蕉| 日韩欧美国产亚洲一区| 久久久免费精品人妻一区二区三区| 在线精品首页中文字幕亚洲| 国产大屁股喷水在线观看视频| 夜夜躁狠狠躁日日躁视频黑人| 91亚洲精品综合久久| 久久精品亚洲精品国产欧美| 国产精品色热综合在线| 日韩无套内射免费精品| 欧美日韩国产的另类视频| 日本办公室三级在线观看| 夫妻性生活黄色录像视频| 国产一区一一一区麻豆| 色婷婷久久五月中文字幕| 亚洲av熟女一区二区三区蜜桃 | 日韩一级毛一欧美一级乱| 日本不卡在线视频你懂的 | 爱在午夜降临前在线观看| 欧美日韩亚洲综合国产人| 亚洲中文字幕高清乱码毛片| 国产精品九九九一区二区| 中文字幕日韩精品人一妻| 国产欧美日产久久婷婷| 香蕉网尹人综合在线观看| 国产一区二区三区免费福利| 好吊日视频这里都是精品| 国产精品日韩精品一区| 果冻传媒在线观看免费高清| 久久综合亚洲精品蜜桃| 亚洲中文字幕高清视频在线观看| 欧美一级黄片免费视频| 亚洲国产天堂av成人在线播放|