GoFrame 錯(cuò)誤碼特性-錯(cuò)誤碼使用

2022-03-30 11:13 更新

創(chuàng)建帶錯(cuò)誤碼的error

NewCode/NewCodef

  • 說明:功能同?New/Newf?方法,用于創(chuàng)建一個(gè)自定義錯(cuò)誤信息的?error?對(duì)象,并包含堆棧信息,并增加錯(cuò)誤碼對(duì)象的輸入。
  • 格式:
NewCode(code gcode.Code, text ...string) error
NewCodef(code gcode.Code, format string, args ...interface{}) error

  • 示例:

func ExampleNewCode() {
	err := gerror.NewCode(gcode.New(10000, "", nil), "My Error")
	fmt.Println(err.Error())
	fmt.Println(gerror.Code(err))

	// Output:
	// My Error
	// 10000
}

func ExampleNewCodef() {
	err := gerror.NewCodef(gcode.New(10000, "", nil), "It's %s", "My Error")
	fmt.Println(err.Error())
	fmt.Println(gerror.Code(err).Code())

	// Output:
	// It's My Error
	// 10000
}

WrapCode/WrapCodef

  • 說明:功能同?Wrap/Wrapf?方法,用于包裹其他錯(cuò)誤?error?對(duì)象,構(gòu)造成多級(jí)的錯(cuò)誤信息,包含堆棧信息,并增加錯(cuò)誤碼參數(shù)的輸入。
  • 格式:

WrapCode(code gcode.Code, err error, text ...string) error
WrapCodef(code gcode.Code, err error, format string, args ...interface{}) error

  • 示例:

func ExampleWrapCode() {
	err1 := errors.New("permission denied")
	err2 := gerror.WrapCode(gcode.New(10000, "", nil), err1, "Custom Error")
	fmt.Println(err2.Error())
	fmt.Println(gerror.Code(err2).Code())

	// Output:
	// Custom Error: permission denied
	// 10000
}

func ExampleWrapCodef() {
	err1 := errors.New("permission denied")
	err2 := gerror.WrapCodef(gcode.New(10000, "", nil), err1, "It's %s", "Custom Error")
	fmt.Println(err2.Error())
	fmt.Println(gerror.Code(err2).Code())

	// Output:
	// It's Custom Error: permission denied
	// 10000
}

NewCodeSkip/NewCodeSkipf

  • 說明:高級(jí)方法,開發(fā)者一般很少會(huì)用到。功能同?NewSkip/NewSkipf?,用于創(chuàng)建一個(gè)自定義錯(cuò)誤信息的?error?對(duì)象,并且忽略部分堆棧信息(按照當(dāng)前調(diào)用方法位置往上忽略),并增加錯(cuò)誤參數(shù)輸入。
  • 格式:

func NewCodeSkip(code, skip int, text string) error
func NewCodeSkipf(code, skip int, format string, args ...interface{}) error

獲取error中的錯(cuò)誤碼接口

func Code(err error) gcode.Code

當(dāng)給定的?error?參數(shù)不帶有錯(cuò)誤碼信息時(shí),該方法返回預(yù)定義的錯(cuò)誤碼?gcode.CodeNil?


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)