Go语言入门之错误处理
错误处理是开发中必不可少的一个部分,go中的错误一般有两种,一种为error,一种为panic
go语言通常返回一个错误值,然后检查错误值是否为
nil
,以此判断函数是否执行
1.Error
Go使用
error接口
来表示一个错误,任何实现此接口的类型都能当做一个错误。
(1)定义
// error 接口的定义
type error interface {
Error() string
}
实例
type User struct {
Name string
}
func genUser() (*User, error) {
return nil, errors.New("user == nil")
}
func main() {
if u, err := genUser(); err != nil {
fmt.Println(err)
} else {
fmt.Println(u.Name)
}
}
使用经验
error
应该是函数的最后一个返回值。- 当
error
不为nil
时,不应该对其他返回值有所期待。 - 只需在
error
最后出现的位置打印错误即可。
(2)使用
errors.New
func pay(money float64) error {
if money < 10 {
return errors.New("余额不足")
}
return nil
}
errors.Is
判断错误是否是某一个特定错误
var MoneyNotEnough