errors 一個很不錯的golang 異常處理包


pkg/errors 是一個用的比較多,同時也比較靈活的一個golang 異常處理包,我們基於此包,可以靈活的處理軟件開發中的異常
以下是一個簡單的學習

項目准備

  • go.mod
 
module github.com/rongfengliang/go-error
go 1.14
require github.com/pkg/errors v0.9.1
 
  • main.go
package main
import (
    "fmt"
    "github.com/pkg/errors"
)
func login(apikey string) error {
    return errors.New("demoapp")
}
type stackTracer interface {
    StackTrace() errors.StackTrace
}
func main() {
    err, ok := errors.Cause(login("deemoapp")).(stackTracer)
    if !ok {
        panic("oops, err does not implement stackTracer")
    }
    st := err.StackTrace()
    fmt.Printf("%+v", st[0:]) // top two frames
}
  • 說明
    我們只要修改以前的errors包為github.com/pkg/errors 就能使用好多方便分功能了,比如上邊的代碼就支持了請求棧的信息,同時可以方便
    我們的代碼調試

運行效果

 
go run main.go

 

 

參考資料

https://github.com/pkg/errors


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM