funcmain() { //方法一: //采用errors包的New方法 返回一个err的类型 var err error = errors.New("this is a new error") //由于已经实现了error接口的方法 因此可以直接调用对应的方法 fmt.Println(err.Error())
//方法二: //采用fmt.Errof 将string信息转化为error信息 并返回 err = fmt.Errorf("%s", "the error test for fmt.Errorf") fmt.Println(err.Error())
//方法三: //采用自定义的方式实现一个error的 一个duck 类型 err = &Customerror{ infoa: "err info a", infob: "err info b", Err: errors.New("test custom err"), }
fmt.Println(err.Error())
}
/*output: this is a new error the error test for fmt.Errorf infoa : err info a , infob : err info b , original err info : test custom err */
// 使用 if 复合语句 if value, err := pack1.Func1(param1); err != nil { fmt.Printf(“Error %s in pack1.Func1 with parameter %v”, err.Error(), param1) return// or: return err }