在Go语言中,一种约定是在调用可能出现问题的方法或函数时,返回一个类型为错误的值。这意味着如果出现了问题,函数通常不会引发异常,而让调用者决定如何处理错误。
package main import ( "fmt" "io/ioutil" ) func main() { file, err := ioutil.ReadFile("mod.txt") if err != nil { fmt.Println(err) return } fmt.Printf("%s", file) // 输出 open mod.txt: The system cannot find the file specified. }在Go语言中,错误是一个值。便准库声明了接口error。
type error interface { Error() string }这个接口只有一个方法Error,它返回一个字符串。
除了errors包外,标准库中的fmt包还提供了方法Errorf,可用于设置返回的错误字符串的格式。
package main import ( "fmt" ) func main() { name, role := "moddemod", "w" err := fmt.Errorf("The %v %v quit", name, role) if err != nil { fmt.Println(err) } }