无非是两种情况:
- 我们如何处理别的函数返回来的error?
- 我们怎么写一个函数返回error?
1. 如何处理别的函数返回的error
result, err := SomeFunction()
if err != nil {
// handle error
}
2. 如何写一个可能返回error的函数
func MyFunc() (int, error) {
// if error happens
return -1, errors.New("We met some error")
}
3. 一个完整的例子
package main
import (
"log"
"errors"
)
func SomeFunc() (int, error) {
return -1, errors.New("We met some error")
}
func main() {
if _, err := SomeFunc(); err != nil {
log.Fatal(err)
return
}
}
运行结果:
2021/06/22 10:27:01 We met some error
exit status 1
4. 最后什么是error?
其定义如下:
type error interface {
Error() string
}
不了解Go语言中interface概念的请看这里:https://www.jianshu.com/p/52620d1c7dd2
参考
https://www.bacancytechnology.com/blog/golang-error-handling
https://blog.logrocket.com/error-handling-in-golang/