Go语言errors包的用法(附带实例)
Go 语言的 errors 库包含用于操作错误的函数。Go 语言使用 error 类型返回在程序执行某个函数时遇到的错误。如果返回的 error 值为 nil,则表示未遇到错误;否则 error 返回说明遇到哪个错误的字符串。
注意,error 可以是任意类型,这意味着函数返回的 error 值可以包含任意信息,不一定是字符串。此外,error 不一定表示错误,它可以表示任何信息。例如,io 库就使用 error 类型的 io.EOF 表示数据读取结束,而不是遇到错误。
errors 库实现的是最简单的 error 类型,即只包含一个字符串。它可以记录大多数情况下遇到的错误信息。errors 库只有一个 New() 函数,用于生成最简单的 error 对象。
New() 函数的语法格式如下:
【实例】返回“字符串不能为空”错误。定义 check() 函数,检测“字符串是否为空”。当字符串为空时,返回“字符串不能为空”的错误信息。代码如下:
注意,error 可以是任意类型,这意味着函数返回的 error 值可以包含任意信息,不一定是字符串。此外,error 不一定表示错误,它可以表示任何信息。例如,io 库就使用 error 类型的 io.EOF 表示数据读取结束,而不是遇到错误。
errors 库实现的是最简单的 error 类型,即只包含一个字符串。它可以记录大多数情况下遇到的错误信息。errors 库只有一个 New() 函数,用于生成最简单的 error 对象。
New() 函数的语法格式如下:
func New(text string) error
【实例】返回“字符串不能为空”错误。定义 check() 函数,检测“字符串是否为空”。当字符串为空时,返回“字符串不能为空”的错误信息。代码如下:
package main import ( "errors" "fmt" ) func check(s string) (string, error) { if s == "" { err := errors.New("字符串不能为空") return "", err } else { return s, nil } } func main() { s, err := check("") if err != nil { fmt.Printf("err: %v\n", err.Error()) } else { fmt.Printf("s: %v\n", s) } }运行结果如下:
err: 字符串不能为空