当前位置: > > > > 当 xerrors.Errorf() 输出错误时,有什么方法可以设置 xerrors.Caller(1) 吗?
来源:stackoverflow
2024-04-19 19:39:19
0浏览
收藏
今天将给大家带来《当 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) 吗?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注公众号吧!