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

运行下面的代码,堆栈跟踪输出,行号为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))

}


侃侃尔雅
浏览 108回答 1
1回答

暮色呼如

我想你想要的是: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)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go