Stack-Traces abrufen, die auf die tatsächliche Fehlerquelle verweisen
In einem Go-Programm kann es aufgrund eines Fehlers, der von einem Dritten ausgelöst wird, zu einer Panik kommen. Parteibibliothek. Allerdings liefert der Standard-Stack-Trace oft nur den Punkt, an dem die Panik aufgetreten ist, nicht die eigentliche Fehlerquelle.
Um tiefer in die Fehlerursachen einzutauchen, bietet das Paket error eine Lösung . Durch die Implementierung der Schnittstelle stackTracer, die die Methode StackTrace verfügbar macht, können Fehler mit zusätzlichen Informationen umschlossen werden.
type stackTracer interface { StackTrace() errors.StackTrace }
Der folgende Code zeigt, wie ein Fehler verfolgt wird zur ursprünglichen Quelle:
func main() { value, err := some3rdpartylib.DoSomething() if err != nil { // Wrap the error with stack trace information err = errors.WithStack(err) panic(err) } }
Im unglücklichen Fall einer Panik enthält der Stack-Trace jetzt die die tatsächliche Fehlerquelle, sodass der Entwickler die Grundursache genau bestimmen kann.
Darüber hinaus können Bibliotheken von Drittanbietern die Fehlerbehandlungsfunktionen weiter verbessern:
Das obige ist der detaillierte Inhalt vonWie kann ich detailliertere Stack-Traces zum Debuggen von Fehlern erhalten, die ihren Ursprung in Go-Bibliotheken von Drittanbietern haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!