pkg/errors 是一个用的比较多,同时也比较灵活的一个golang 异常处理包,我们基于此包,可以灵活的处理软件开发中的异常
以下是一个简单的学习
module github.com/rongfengliang/go-error
?
go 1.14
?
require github.com/pkg/errors v0.9.1
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
}
go run main.go
原文:https://www.cnblogs.com/rongfengliang/p/13332834.html