最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GoFrame錯誤處理常用方法及錯誤碼使用示例

 更新時間:2022年06月25日 11:45:26   作者:王中陽Go  
這篇文章主要為大家介紹了GoFrame錯誤處理常用方法及錯誤碼使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

這篇文章將為大家介紹:GoFrame 錯誤處理的常用方法&錯誤碼的使用。如何自定義錯誤對象、如何忽略部分堆棧信息、如何自定義錯誤碼的返回、如何獲取error對象中的錯誤碼。

錯誤創(chuàng)建

New/Newf

用于創(chuàng)建一個自定義錯誤信息的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

用于創(chuàng)建一個自定義錯誤信息的error對象,并且忽略部分堆棧信息(按照當前調用方法位置往上忽略)。高級功能,一般開發(fā)者很少用得到。

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方法,用于創(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對象,構造成多級的錯誤信息,包含堆棧信息,并增加錯誤碼參數的輸入。

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對象,并且忽略部分堆棧信息(按照當前調用方法位置往上忽略),并增加錯誤參數輸入。

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錯誤處理錯誤碼的資料請關注腳本之家其它相關文章!

相關文章

  • go語言實現并發(fā)網絡爬蟲的示例代碼

    go語言實現并發(fā)網絡爬蟲的示例代碼

    本文主要介紹了go語言實現并發(fā)網絡爬蟲的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • golang HTTP 服務器 處理 日志/Stream流的操作

    golang HTTP 服務器 處理 日志/Stream流的操作

    這篇文章主要介紹了golang HTTP 服務器 處理 日志/Stream流的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • go新工具gonew生成模板工具鏈使用詳解

    go新工具gonew生成模板工具鏈使用詳解

    這篇文章主要為大家介紹了go新工具gonew生成模板工具鏈使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Go Println和Printf的區(qū)別詳解

    Go Println和Printf的區(qū)別詳解

    這篇文章主要介紹了Go Println和Printf的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go語言中goroutine和WaitGroup的使用示例詳解

    Go語言中goroutine和WaitGroup的使用示例詳解

    goroutine 是Go中一個輕量級的線程, 只需要一個go關鍵字就可以創(chuàng)建一個goroutine,這篇文章主要介紹了Go語言中goroutine和WaitGroup的使用,需要的朋友可以參考下
    2023-03-03
  • Go高級特性探究之穩(wěn)定排序詳解

    Go高級特性探究之穩(wěn)定排序詳解

    Go 語言提供了 sort 包,其中最常用的一種是 sort.Slice() 函數,本篇文章將為大家介紹如何使用 sort.SliceStable() 對結構體數組的某個字段進行穩(wěn)定排序,感興趣的可以了解一下
    2023-06-06
  • Go語言Zap庫Logger的定制化和封裝使用詳解

    Go語言Zap庫Logger的定制化和封裝使用詳解

    這篇文章主要介紹了Go語言Zap庫Logger的定制化和封裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • go語言int64整型轉字符串的實現

    go語言int64整型轉字符串的實現

    本文主要介紹了go語言int64整型轉字符串的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Golang 類型轉換的實現(斷言、強制、顯式類型)

    Golang 類型轉換的實現(斷言、強制、顯式類型)

    將一個值從一種類型轉換到另一種類型,便發(fā)生了類型轉換,在go可以分為斷言、強制、顯式類型轉換,本文就詳細的介紹一下這就幾種轉換方式,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • gorm FirstOrCreate和受影響的行數實例

    gorm FirstOrCreate和受影響的行數實例

    這篇文章主要介紹了gorm FirstOrCreate和受影響的行數實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論

兴城市| 磴口县| 惠安县| 侯马市| 潢川县| 威远县| 南投市| 曲水县| 垣曲县| 通道| 天峻县| 和林格尔县| 大冶市| 建瓯市| 宁化县| 高淳县| 泰和县| 三明市| 米脂县| 广汉市| 通许县| 衡水市| 同仁县| 澄迈县| 珲春市| 砚山县| 金川县| 兴文县| 迁安市| 潮安县| 香河县| 荆门市| 安国市| 安乡县| 阿城市| 应城市| 波密县| 嫩江县| 雷山县| 铁岭县| 凤阳县|