GoFrame錯誤處理常用方法及錯誤碼使用示例
前言
這篇文章將為大家介紹:GoFrame 錯誤處理的常用方法&錯誤碼的使用。如何自定義錯誤對象、如何忽略部分堆棧信息、如何自定義錯誤碼的返回、如何獲取error對象中的錯誤碼。
錯誤創(chuàng)建
New/Newf
用于創(chuàng)建一個自定義錯誤信息的error對象,并包含堆棧信息。
New(text string) error Newf(format string, args ...interface{}) error
Wrap/Wrapf
用于包裹其他錯誤error對象,構(gòu)造成多級的錯誤信息,包含堆棧信息。
func Wrap(err error, text string) error func Wrapf(err error, format string, args ...interface{}) error
NewSkip/NewSkipf
用于創(chuàng)建一個自定義錯誤信息的error對象,并且忽略部分堆棧信息(按照當前調(diào)用方法位置往上忽略)。高級功能,一般開發(fā)者很少用得到。
func NewSkip(skip int, text string) error func NewSkipf(skip int, format string, args ...interface{}) error
錯誤碼使用
錯誤碼相關(guān)方法概覽
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方法,用于創(chuàng)建一個自定義錯誤信息的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對象,構(gòu)造成多級的錯誤信息,包含堆棧信息,并增加錯誤碼參數(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(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,用于創(chuàng)建一個自定義錯誤信息的error對象,并且忽略部分堆棧信息(按照當前調(diào)用方法位置往上忽略),并增加錯誤參數(shù)輸入。
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參數(shù)不帶有錯誤碼信息時,該方法返回預定義的錯誤碼gcode.CodeNil
總結(jié)
通過這篇文章我們了解到使用GoFrame,如何自定義錯誤對象、如何忽略部分堆棧信息、如何自定義錯誤碼的返回、如何獲取error對象中的錯誤碼。
以上就是GoFrame錯誤處理常用方法及錯誤碼使用示例的詳細內(nèi)容,更多關(guān)于GoFrame錯誤處理錯誤碼的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
深入探討Golang中如何進行并發(fā)發(fā)送HTTP請求
在?Golang?領(lǐng)域,并發(fā)發(fā)送?HTTP?請求是優(yōu)化?Web?應(yīng)用程序的一項重要技能,本文探討了實現(xiàn)此目的的各種方法,文中的示例代碼講解詳細,希望對大家有所幫助2024-01-01Go語言并發(fā)編程之控制并發(fā)數(shù)量實現(xiàn)實例
這篇文章主要為大家介紹了Go語言并發(fā)編程之控制并發(fā)數(shù)量實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01go高并發(fā)時append方法偶現(xiàn)錯誤解決分析
這篇文章主要為大家介紹了go高并發(fā)時append方法偶現(xiàn)錯誤解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10使用golang如何優(yōu)雅的關(guān)機或重啟操作示例
這篇文章主要為大家介紹了使用golang如何優(yōu)雅的關(guān)機或重啟操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪2022-04-04Go語言題解LeetCode268丟失的數(shù)字示例詳解
這篇文章主要為大家介紹了Go語言題解LeetCode268丟失的數(shù)字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12