假设我有一些这样的代码:
value,err := some3rdpartylib.DoSomething()
if err != nil {
panic(err)
}
err != nil
panic: some error explanation here
goroutine 1 [running]:
main.main()
/tmp/blabla/main.go:6 +0x80
此堆栈跟踪完全合法,但有时这些错误消息可能无法阐明发生了什么,因此我想更深入地研究第三方库的源代码,以调查究竟是什么导致该错误被返回。但是,当我的代码如此恐慌时,无法获得返回此错误的实际位置。
需要更多说明:当我来自抛出异常的JVM世界时,我可以完全跟踪抛出异常的确切代码行,从而可以轻松找到问题的所在并查看出了什么问题。Go堆栈跟踪恰好在我的代码恐慌的地方结束,因此在我的情况下不太有用。
return
"",errors.New("some error explanation here")
这有可能吗?