上一篇文章讲了使用Go语言输出hello world,本篇文章简单说一下Go语言中的错误处理。
输出hello world的代码如下:
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
Go语言函数可以一次返回多个不同类型的值,所以我们可以把正常值和错误值同时返回来,具体如何处理这些返回值由函数调用方来自行决定。
为了演示Go语言中的错误处理,我们改动一下以上hello world程序,让具体输出的内容由hello函数来返回,当然hello函数有可能会返回错误,我们会在main函数中来处理这种情况,改动之后的代码如下:
package main
import (
"fmt"
"errors"
"log"
)
func main() {
// message, err := hello("Lilei") //此行会返回Hello Lilei.给message
message, err := hello("") //参数为空会返回错误给err
if err != nil {
log.Fatal(err) //如果有错误,打印错误日志并结束
}
fmt.Println(message)
}
func hello(name string) (string, error) {
if name == "" {
return "", errors.New("Param name is empty.") //name参数为空返回错误
}
return fmt.Sprintf("Hello %v.", name), nil //返回正常信息
}
import部分导入了两个新的package包,log包用来打印日志,errors包用来生成错误信息。
再来关注一下hello函数,接收一个string类型的name参数,返回一个string类型的值和一个error类型的值,如果参数为空,就调用errors.New("Param name is empty.")生成错误信息并返回,如果参数为正常字符串,就返回正常信息和nil,这里nil是没有错误时候error的默认值。
命令行执行以上代码打印出错误如下:
以上就是Go语言错误处理相关内容。