登录
首页 >  Golang >  Go问答

当 xerrors.Errorf() 输出错误时,有什么方法可以设置 xerrors.Caller(1) 吗?

来源:stackoverflow

时间:2024-04-19 19:39:19 382浏览 收藏

golang学习网今天将给大家带来《当 xerrors.Errorf() 输出错误时,有什么方法可以设置 xerrors.Caller(1) 吗?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

运行以下代码,将输出堆栈跟踪,其中包含 fmt.print(...) 的行号。但我想输出logerror(err)这一行。我想我需要调用 xerrors.caller(1) 来做到这一点,但我不知道如何做。帮助我。

import (
    "fmt"
    "io/ioutil"

    "golang.org/x/xerrors"
)

func main() {
    _, err := ioutil.ReadFile("")
    if err != nil {
        logError(err)
        return
    }
}

func logError(err error) {
    fmt.Printf("%+v", xerrors.Errorf(": %w", err))
}

解决方案


我认为你想要的是:

import (
    "fmt"
    "io/ioutil"

    "golang.org/x/xerrors"
)

func doWhatever() error {
    _, err := ioutil.ReadFile("")
    if err != nil {
        return xerrors.Errorf("failed doing whatever: %w", err)
    }
    return nil
}

func main() {
    err := doWhatever()
    if err != nil {
        logError(err)
        return
    }
}

func logError(err error) {
    fmt.Printf("%+v", err)
}

理论要掌握,实操不能落!以上关于《当 xerrors.Errorf() 输出错误时,有什么方法可以设置 xerrors.Caller(1) 吗?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>