框架提供了默认的错误码组件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
的结构体,开发者可以直接通过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
即可。