zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    HDU 1195.Open the Lock
    HDU 2612.Find a way
    HDU 1240.Asteroids!
    HDU 1429.胜利大逃亡(续)
    HDU 1253.胜利大逃亡
    HDU 2102.A计划
    HDU 2579.Dating with girls(2)
    HDU 1782.逃离迷宫
    洛谷1297[国家集训队]单选错位
    spoj1026Favorite Dice
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/13332834.html
Copyright © 2011-2022 走看看