go stack追蹤增強功能可用於精確誤差追蹤
>
value, err := some3rdpartylib.DoSomething() if err != nil { panic(err) }
>
>請考慮以下代碼:panic: some error explanation here goroutine 1 [running]: main.main() /tmp/blabla/main.go:6 +0x80
在panic時,堆棧跟踪相似:
>雖然準確,但此追蹤無法找出觸發錯誤的第三方庫中的程式碼3rddpartylib。要深入研究,至關重要的是將堆疊追蹤擴展到恐慌點之外。
type stackTracer interface { StackTrace() errors.StackTrace }
err, ok := errors.(stackTracer) // ok is false if errors doesn't implement stackTracer stack := err.StackTrace() fmt.Println(stack) // Display the extended stack trace
> >
在包裝錯誤上實作介面:以上是如何在 Go 中獲得更精確的堆疊追蹤以有效地調試錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!