主题
自定义错误
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)
}
自定义错误帮助提供丰富的错误上下文,方便调试和处理。