在由於外部庫錯誤而發生恐慌的情況下,最好追溯錯誤到它在圖書館程式碼中的起源。雖然預設的 Go 堆疊追蹤僅指向恐慌行,但需要進行更深入的調查。
為了實現這一點,「error」套件提供了一個名為「stackTracer」的接口,可以存取錯誤的堆疊追蹤。透過包裝原始錯誤並實現此接口,可以發現錯誤的實際來源。
type stackTracer interface { StackTrace() errors.StackTrace }
要從包裝的錯誤中檢索堆疊追蹤:
err, ok := err.(stackTracer) if ok { stack := err.StackTrace() fmt.Println(stack) }
此外,一些第三方函式庫提供了不同程度的錯誤處理功能功能:
以上是如何取得詳細的堆疊追蹤來調試源自外部 Go 庫的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!