Heim > Backend-Entwicklung > Golang > Wie kann ich mehrere Fehler in Go ordnungsgemäß behandeln?

Wie kann ich mehrere Fehler in Go ordnungsgemäß behandeln?

Mary-Kate Olsen
Freigeben: 2024-12-18 21:07:13
Original
354 Leute haben es durchsucht

How Can I Handle Multiple Errors Gracefully in Go?

Eleganter Umgang mit mehreren Fehlern in Go

In Go kann die Fehlerbehandlung mühsam werden, wenn es um zahlreiche potenzielle Fehler geht. Betrachten Sie beispielsweise den folgenden Code:

aJson, err1 := json.Marshal(a)
bJson, err2 := json.Marshal(b)
cJson, err3 := json.Marshal(c)
dJson, err4 := json.Marshal(d)
eJson, err5 := json.Marshal(e)
fJson, err6 := json.Marshal(f)
gJson, err4 := json.Marshal(g)

if err1 != nil {
    return err1
} else if err2 != nil {
    return err2
} else if err3 != nil {
    return err3
} else if err4 != nil {
    return err4
} else if err5 != nil {
    return err5
} else if err5 != nil {
    return err5
} else if err6 != nil {
    return err6
} 
Nach dem Login kopieren

Die Fehlerbehandlung dieses Codes ist sehr repetitiv und schwierig zu warten. Ein saubererer und effizienterer Ansatz besteht darin, einen Abschluss zu verwenden, um alle Fehler auf einmal zu behandeln:

var err error
f := func(dest *D, src S) bool {
    *dest, err = json.Marshal(src)
    return err == nil
} // EDIT: removed ()

f(&aJson, a) &&
    f(&bJson, b) &&
    f(&cJson, c) &&
    f(&dJson, d) &&
    f(&eJson, e) &&
    f(&fJson, f) &&
    f(&gJson, g)
return err
Nach dem Login kopieren

Dieser Funktionszeiger f kapselt die Fehlerbehandlungslogik und vereinfacht die Hauptfunktion durch Verketten von Aufrufen und Zurückgeben des ersten Nicht-Fehlers -nil-Fehler aufgetreten. Durch die Implementierung dieser Technik erreichen Sie eine präzisere und elegantere Fehlerbehandlung.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Fehler in Go ordnungsgemäß behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage