GoFrame錯誤處理常用方法及錯誤碼使用示例
前言
這篇文章將為大傢介紹:GoFrame 錯誤處理的常用方法&錯誤碼的使用。如何自定義錯誤對象、如何忽略部分堆棧信息、如何自定義錯誤碼的返回、如何獲取error對象中的錯誤碼。
錯誤創建
New/Newf
用於創建一個自定義錯誤信息的error對象,並包含堆棧信息。
New(text string) error Newf(format string, args ...interface{}) error
Wrap/Wrapf
用於包裹其他錯誤error對象,構造成多級的錯誤信息,包含堆棧信息。
func Wrap(err error, text string) error func Wrapf(err error, format string, args ...interface{}) error
NewSkip/NewSkipf
用於創建一個自定義錯誤信息的error對象,並且忽略部分堆棧信息(按照當前調用方法位置往上忽略)。高級功能,一般開發者很少用得到。
func NewSkip(skip int, text string) error func NewSkipf(skip int, format string, args ...interface{}) error
錯誤碼使用
錯誤碼相關方法概覽
func NewCode(code int, text string) error func NewCodef(code int, format string, args ...interface{}) error func NewCodeSkip(code, skip int, text string) error func NewCodeSkipf(code, skip int, format string, args ...interface{}) error func WrapCode(code int, err error, text string) error func WrapCodef(code int, err error, format string, args ...interface{}) error
NewCode/NewCodef
功能同New/Newf方法,用於創建一個自定義錯誤信息的error對象,並包含堆棧信息,並增加錯誤碼對象的輸入。
NewCode(code gcode.Code, text ...string) error NewCodef(code gcode.Code, format string, args ...interface{}) error
示例代碼
func ExampleNewCode() { err := gerror.NewCode(gcode.New(101, "", nil), "My Error") fmt.Println(err.Error()) // My Error fmt.Println(gerror.Code(err)) //101 } func ExampleNewCodef() { err := gerror.NewCodef(gcode.New(101, "", nil), "It's %s", "My Error") fmt.Println(err.Error()) //It's My Error fmt.Println(gerror.Code(err).Code()) //101 }
WrapCode/WrapCodef
功能同Wrap/Wrapf方法,用於包裹其他錯誤error對象,構造成多級的錯誤信息,包含堆棧信息,並增加錯誤碼參數的輸入。
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(403, "", nil), err1, "Custom Error") fmt.Println(err2.Error()) // Custom Error: permission denied fmt.Println(gerror.Code(err2).Code()) // 403 } func ExampleWrapCodef() { err1 := errors.New("permission denied") err2 := gerror.WrapCodef(gcode.New(403, "", nil), err1, "It's %s", "Custom Error") fmt.Println(err2.Error()) // It's Custom Error: permission denied fmt.Println(gerror.Code(err2).Code()) // 403 }
NewCodeSkip/NewCodeSkipf
功能同NewSkip/NewSkipf,用於創建一個自定義錯誤信息的error對象,並且忽略部分堆棧信息(按照當前調用方法位置往上忽略),並增加錯誤參數輸入。
func NewCodeSkip(code, skip int, text string) error func NewCodeSkipf(code, skip int, format string, args ...interface{}) error
獲取error中的錯誤碼接口
func Code(err error) gcode.Code
當給定的error參數不帶有錯誤碼信息時,該方法返回預定義的錯誤碼gcode.CodeNil
總結
通過這篇文章我們瞭解到使用GoFrame,如何自定義錯誤對象、如何忽略部分堆棧信息、如何自定義錯誤碼的返回、如何獲取error對象中的錯誤碼。
以上就是GoFrame錯誤處理常用方法及錯誤碼使用示例的詳細內容,更多關於GoFrame錯誤處理錯誤碼的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- GoFrame框架數據校驗之校驗結果Error接口對象
- GoFrame框架gset使用對比PHP Java Redis優勢
- GoFrame代碼優化gconv類型轉換避免重復定義map
- GoFrame框架數據校驗之校驗對象校驗結構體
- GoFrame gtree樹形結構的使用技巧示例