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

利用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)站建設
黄色录像日本黄色录像| 不用播放器的av蜜臀| 欧美日韩国内在线视频| 亚洲一区二区三区四区五区六| 激情四射五月天亚洲婷婷| 日韩精品在线另类亚洲| 东京热男人的av天堂| 麻豆一区二区人妻网站| 久久91亚洲精品久久91| 我要看亚洲黄色片一级| 国产精品久久久久精品综合| 亚洲毛片在线免费播放| 亚洲一区二区三区小蜜桃| 亚洲乱码一区二区三区人妇| 91精品国产高清久久福利| 国产熟女碰碰人人a久久| 欧美精品一区二区亚洲| 成人黄片免费在线播放| 精品国产av一区蜜臀av| 日本韩国欧美在线一区| 国产av综合一区二区三区最新| 亚洲国产a级一区二区| 欧美色高清视频在线播放| 亚洲视一区二区三区四区| 欧美日本精品在线观看| 99热精品这里只有精品| av一区二区日韩精品久| 国产伦理免费精品中文字幕| 欧美日韩精品亚洲成人精品| 国内自拍视频一区高清视频| 日韩大片一区二区三区在线观看| 亚洲最新精品一区二区| 综合激情丁香久久狠狠| 91香蕉国产精品日韩| 亚洲成人福利免费网站| 国产高清不卡av在线| 国产一区二区三区在线精品专区| 国产亚洲av综合人人精品| 日本在线不卡一二三区| 女人的天堂亚洲的天堂欧美| 国产日韩在线不卡网站|