1 package main
2
3 import (
4 "errors"
5 "fmt"
6 )
7
8 // 设计一个函数:验证年龄是否合法,如果为负数,就返回一个error
9 func checkAge(age int) error {
10 if age < 0 {
11 //返回error对象
12 //return errors.New("年龄不合法")
13 err := fmt.Errorf("您给定的年龄是:%d,不合法", age)
14 return err
15 }
16 fmt.Println("年龄是:", age)
17 return nil
18 }
19
20 func main() {
21 /*
22 error:内置的数据类型,内置的接口
23 定义方法:Error() string
24
25 使用go语言提供好的包:
26 errors包下的函数:New(),创建一个error对象
27 fmt包下的Errorf()函数:
28 func Errorf(format string, a ...interface{}) error
29 */
30
31 // 1.创建一个error数据
32 err1 := errors.New("自己创建玩的。。")
33 fmt.Println(err1)
34 fmt.Printf("%T\n", err1) // *errors.errorString
35
36 // 2.另一个创建error的方法
37 err2 := fmt.Errorf("错误的信息码: %d", 100)
38 fmt.Println(err2)
39 fmt.Printf("%T\n", err2) // *errors.errorString
40
41 fmt.Println("-----------------")
42 err3 := checkAge(-30)
43 if err3 != nil {
44 fmt.Println(err3) // 您给定的年龄是:-30,不合法
45 return
46 }
47 fmt.Println("程序。。。go on。。。")
48 }