golang错误处理

1. 普通处理err != nil

1
2
3
4
file, err := os.Open("example.txt")
if err != nil {
// 处理逻辑..........
}

2. 封装泛用错误处理函数

1
2
3
4
5
6
func WithErr(err error, callback func()error) error {
if err != nil {
return err
}
return callback()
}

3. 结构体内部保存,在结果处理

1
2
3
4
5
6
7
8
9
10
11
12
type MyClass struct {
err error()
}

var a *MyClass

a.SomeMethod() // ..........
a.SomeOtherMethod() // ..........

if a.err != nil {
// 处理...............
}