获取指向实际错误源的堆栈跟踪
在 Go 程序中,由于第三方引发的错误可能会发生恐慌 -党库。然而,默认的堆栈跟踪通常只提供发生恐慌的点,而不是错误的实际来源。
为了更深入地研究错误的根源,error 包提供了一个解决方案。通过实现 stackTracer 接口,该接口公开了 StackTrace 方法,可以使用附加信息来包装错误。
type stackTracer interface { StackTrace() errors.StackTrace }
以下代码演示了如何跟踪错误其原始来源:
func main() { value, err := some3rdpartylib.DoSomething() if err != nil { // Wrap the error with stack trace information err = errors.WithStack(err) panic(err) } }
如果不幸发生恐慌,堆栈跟踪现在将包括错误的实际来源,使开发人员能够查明根本原因。
此外,第三方库可以进一步增强错误处理能力:
以上是如何获取更详细的堆栈跟踪来调试源自第三方 Go 库的错误?的详细内容。更多信息请关注PHP中文网其他相关文章!