golang的错误处理
来源:互联网 发布:java选课源代码 编辑:程序博客网 时间:2024/05/19 17:04
通常在golang中使用错误处理都是这样做的:
err := foo()
if err != nil {
return err
}
但是如果该函数需要多次调用,那么每次调用都需要进行错误处理:
var err error
var param1, param2 int
err = foo(param1)
if err != nil {
return err
}
err = foo(param2)
if err != nil {
return err
}
但是其实有一种更为合理的处理是,先调用函数进行处理,最后在考虑错误。
比如:
var err error
f := func(param int) {
if err != nil {
return
}
err = foo(param)
}
foo(param1)
foo(param2)
if err != nil {
return err
}
当然,也可以封装在一个结构体中进行处理,这样就不必通过定义一个函数来处理,结果将更为清晰。
type errFooer struct {
err error
f func(int)
}
func (ef *errFooer) errFoo(param int) {
if ef.err != nil {
return
}
ef.err = ef.f(param)
}
这样使用的时候可以通过errFooer对象和errFoo方法进行操作:
foo := &errFooer{f: foo}
foo.errFoo(param1)
foo.errFoo(param2)
if foo.err != nil {
return
}
这是在go blog上看到的一篇文章,原文地址是:https://blog.golang.org/errors-are-values
查看原文:http://www.zoues.com/2016/10/20/golang%e7%9a%84%e9%94%99%e8%af%af%e5%a4%84%e7%90%86/
- golang的错误处理
- [golang note] 错误处理
- GOLANG错误处理最佳方案
- Golang错误和异常处理的正确姿势
- Golang的并发处理
- golang的JSON处理
- Golang 的json处理
- Golang 时间的处理
- golang错误处理之panic和recover
- golang定义错误的方式
- error和panic,初识Golang的错误和异常处理机制
- [Golang]一个非典型的GoRoutine的错误
- golang语法学习(二):控制语句,函数,以及错误处理。
- golang语法学习(二):控制语句,函数,以及错误处理。
- golang操作redis出现的错误解决
- Golang从入门到精通(二十):Golang错误处理之error
- Golang从入门到精通(二十一):Golang错误处理之panic-recover
- Golang从入门到精通(二十二):Golang错误处理之defer
- golang:interface{}类型测试
- golang定时器函数
- Struts配置之全局跳转视图(global-result)
- mysql数据库的导入导出
- Golang语言--select
- golang的错误处理
- Golang语言--测试技术
- golang的哪些坑爷事: package实践--转
- Golang和HTTPS在网站前端接入里的作用
- golang之defer
- 设计模式之观察者模式
- 驱动问题总结
- Golang基本数据类型,常量,标识符
- Golang语言和node.js的对比