基本介绍
我们前面讲到的主要是gerror
组件的使用,该组件主要用于错误管理。在后续章节中,我们主要讲解gcode
组件的使用,该组件主要用于扩展gerror
组件的能力,提供错误码的特性。gcode
错误码组件使用了接口化设计,以提供高扩展性。
使用方式:
import "github.com/gogf/gf/v2/errors/gcode"
接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/errors/gcode
接口定义
// Code is universal error code interface definition.
type Code interface {
// Code returns the integer number of current error code.
Code() int
// Message returns the brief message for current error code.
Message() string
// Detail returns the detailed information of current error code,
// which is mainly designed as an extension field for error code.
Detail() interface{}
}
默认实现
框架提供了默认实现 gcode.Code
的结构体,开发者可以直接gcode
组件的New/WithCode
方法创建错误码:
-
格式:
// New creates and returns an error code.
// Note that it returns an interface object of Code.
func New(code int, message string, detail interface{}) Code -
示例:
func ExampleNew() {
c := gcode.New(1, "custom error", "detailed description")
fmt.Println(c.Code())
fmt.Println(c.Message())
fmt.Println(c.Detail())
// Output:
// 1
// custom error
// detailed description
}
如果开发者觉得框架默认实现 gcode.Code
的结构体不满足需求,可以自行定义,只需实现 gcode.Code
即可。