DDR爱好者之家 Design By 杰米
前言
社区不少人在谈论 golang 为毛不用trycatch模式,而采用苛刻的recovery、panic、defer组合…. 从网上整了一个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") }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年05月14日
2024年05月14日
- 对你的想象 The Idea of You
- 新手心得,武器系统攻略及武器怎么获得
- 原画壁纸及美图第219期,无水印可自取
- 原画壁纸及美图第220期,无水印可自取
- 哈迪斯2套路搭配图文攻略 黑帝斯2怎么搭配
- 鸣潮漂泊者声骸怎么选择 漂泊者声骸搭配及词条选择攻略
- 鸣潮安可声骸怎么选择 安可声骸搭配及词条选择攻略
- 有线手柄比无线手柄更快乐 囧图 广东人怕热气吗?
- 一个命运多舛的IP!继动画后《宿命回响》手游也扑了
- 听说男人还有第三只脚?动图 此刻的保安是如此性福
- 邓伟标作品-太极头版限量编号HQII2022年【WAV+CUE】
- [ABC唱片]-《雪莉—白》[HDS-007][6N纯银镀膜CD][WAV+CUE]
- 【ABC唱片】《真空管HIFI录音大提琴》无力抗拒的音色[原抓WAV+CUE]
- 防不胜防!女子入住酒店在空调出风口发现摄像头
- 曝PS5 Pro或亮相PS发布会 《完美黑暗》进展不错