首页 > 其他 > 详细

errors 一个很不错的golang 异常处理包

时间:2020-07-17 22:40:38      阅读:91      评论:0      收藏:0      [点我收藏+]

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

errors 一个很不错的golang 异常处理包

原文:https://www.cnblogs.com/rongfengliang/p/13332834.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!