教程 go tutorial

自定义错误

1. 定义自定义错误类型

通过实现 Error() 方法定义结构体类型:

go
type MyError struct {
    Code    int
    Message string
}

func (e *MyError) Error() string {
    return fmt.Sprintf("Error %d: %s", e.Code, e.Message)
}

`

2. 返回自定义错误

go
func doSomething(flag bool) error {
    if !flag {
        return &MyError{Code: 123, Message: "Something went wrong"}
    }
    return nil
}

3. 断言自定义错误

通过类型断言获取错误的详细信息:

go
err := doSomething(false)
if myErr, ok := err.(*MyError); ok {
    fmt.Println("Custom error code:", myErr.Code)
}

自定义错误帮助提供丰富的错误上下文,方便调试和处理。