package main
import (
"errors"
"fmt"
)
func main() {
var i = 0
_ = FnPipe(func() error {
i++
return nil
}, func() error {
i *= 2
return nil
}, FnWithErr(func() {
fmt.Println(i)
}), func() error {
return errors.New("test error")
}, FnWithErr(func() {
fmt.Println("end")
}))
}
func FnWithErr(f func()) func() error {
return func() error {
f()
return nil
}
}
func FnPipe(f ...func() error) error {
for i := range f {
if err := f[i](); err != nil {
return err
}
}
return nil
}
优雅的处理错误
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- title: "【Rust错误处理】使用thiserror+anyhow来优雅便捷地处理错误"date: 2020...
- - 后端早读课翻译计划 第二篇 - 欢迎关注微信公众号: 后端早读课 本文提供了一个优雅的处理 Golang 中错...
- 代码写多了就想优化,这是一个天然的过程。近期在代码优化方面积累了一些心得,会慢慢整理出来。 本文主要适用于想要缩减...
- 注:正文中的引用是直接引用作者的话,两条横线中间的段落的是我自己的观点,其他大约都可以算是笔记了。 错误处理是十分...