基本介绍

我们前面讲到的主要是gerror组件的使用,该组件主要用于错误管理。在后续章节中,我们主要讲解gcode组件的使用,该组件主要用于扩展gerror组件的能力,提供错误码的特性。gcode错误码组件使用了接口化设计,以提供高扩展性。

使用方式

  1. import "github.com/gogf/gf/v2/errors/gcode"

接口文档

https://pkg.go.dev/github.com/gogf/gf/v2/errors/gcode

接口定义

  1. // Code is universal error code interface definition.
  2. type Code interface {
  3. // Code returns the integer number of current error code.
  4. Code() int
  5. // Message returns the brief message for current error code.
  6. Message() string
  7. // Detail returns the detailed information of current error code,
  8. // which is mainly designed as an extension field for error code.
  9. Detail() interface{}
  10. }

默认实现

框架提供了默认实现 gcode.Code 的结构体,开发者可以直接gcode组件的New/WithCode方法创建错误码:

  • 格式:

    1. // New creates and returns an error code.
    2. // Note that it returns an interface object of Code.
    3. func New(code int, message string, detail interface{}) Code
  • 示例:

    1. func ExampleNew() {
    2. c := gcode.New(1, "custom error", "detailed description")
    3. fmt.Println(c.Code())
    4. fmt.Println(c.Message())
    5. fmt.Println(c.Detail())
    6. // Output:
    7. // 1
    8. // custom error
    9. // detailed description
    10. }

如果开发者觉得框架默认实现 gcode.Code 的结构体不满足需求,可以自行定义,只需实现 gcode.Code 即可。