错误error
表示程序中的错误。用法:用于函数多返回值。
func 函数名(参数列表)(返回值,error){
}
xx,err:=函数名()
if err == nil,函数执行无误,结果有效,可以继续向下执行
else err != nil,有错误产生了,函数执行过程中有问题。
error的类型:interface,系统的内置接口类型
type error interface{
Error() string //错误的信息
}
A:系统中提供好的error对象
errors.New() -->error
fmt.Errorf("")-->error
B:自定义类型
type RectError struct{
//field
}
//实现接口
func (r *RectError) Error() string{
}
package main import ( "fmt" "errors" ) func main() { /* error:Go中表示不正常的错误的类型。 error,是interface类型,表示错误的 errors.New(string)-->error fmt.Errorf(format)-->error */ var err error fmt.Println(err) //<nil> err = errors.New("写着玩的") fmt.Println(err) fmt.Printf("%T\n",err) //*errors.errorString // 定义一个函数,用于检验年龄,如果为负数,返回一个error err2 := checkAge(-30) fmt.Println(err2) fmt.Printf("%T\n",err2) if err2 == nil{//无错误 //...后序的操作 } if err2 != nil{ fmt.Println(err2) return } } //定义函数,检验年龄, func checkAge(age int) error { if age < 0{ //返回error //return errors.New("年龄不能为负数") err := fmt.Errorf("您的年龄是:%d,不能为负数,所以不合法",age) return err } fmt.Println("年龄是合法的,", age) return nil }