Wiederholte Überprüfung auf Nullfehler in Go vermeiden
In Go ist es üblich, am Ende jedes Funktionsaufrufs nach Fehlern zu suchen. wie im folgenden Beispiel zu sehen ist:
a, err := doA() if err != nil { return nil, err } b, err := doB(a) if err != nil { return nil, err } c, err := doC(b) if err != nil { return nil, err }
Während dieser Ansatz sicherstellt, dass Fehler ordnungsgemäß behandelt werden, kann er umständlich werden und repetitiv, insbesondere wenn der Fehlerprüfcode mehr Zeilen einnimmt als die eigentliche Logik.
Behebung des Problems
Es gibt mehrere Möglichkeiten, dieses Problem zu beheben:
1. Akzeptieren Sie die Wiederholung
Einige Programmierer argumentieren, dass die Wiederholung keine große Unannehmlichkeit darstellt und als wertvolle Erinnerung an mögliche Fehlerbehandlungspfade dient.
2. Vorteile der Fehlerprüfung
Im Gegensatz zu Ausnahmen zwingt die explizite Fehlerprüfung in Go Entwickler dazu, Fehlerpfade im Voraus zu berücksichtigen, um sicherzustellen, dass die Ressourcenverwaltung angemessen gehandhabt wird.
3 . Erwägen Sie Panic/Recover
In bestimmten Kontexten können Panic und Recovery verwendet werden, um rekursive Logik abzuwickeln, es wird jedoch empfohlen, damit sparsam umzugehen.
4. Code-Reorganisation
Eine Neuorganisation der Codestruktur kann manchmal die Notwendigkeit einer wiederholten Fehlerprüfung verringern.
err := doA() if err != nil { return err } return doB()
5. Benannte Ergebnisse (nicht empfohlen)
Die Verwendung benannter Ergebnisse zum Entfernen der Variable „err“ aus Rückgabeanweisungen kann die Klarheit des Codes beeinträchtigen und potenzielle Probleme verursachen.
6. Anweisung vor If-Bedingung
Gehen Sie, wenn Anweisungen Anweisungen vor der Bedingung akzeptieren, was eine Inline-Fehlerprüfung ermöglicht:
if err := doA(); err != nil { return err }
Das obige ist der detaillierte Inhalt vonWie kann ich das mühsame Null-Fehler-Checken in Go vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!