Heim > Backend-Entwicklung > Golang > Wie kann ich mehrere Fehler in Go elegant behandeln?

Wie kann ich mehrere Fehler in Go elegant behandeln?

DDD
Freigeben: 2024-12-04 17:19:11
Original
818 Leute haben es durchsucht

How Can I Elegantly Handle Multiple Errors in Go?

Eleganter Umgang mit mehreren Fehlern in Go

In Go kann der Umgang mit mehreren Fehlern umständlich werden, wenn zahlreiche Vorgänge zu Fehlern führen können. Eine Möglichkeit, dieses Problem zu beheben, besteht darin, den vom Fehlertyp bereitgestellten Schlüsselwertspeicher zu nutzen.

Bedenken Sie den folgenden Codeausschnitt:

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 repetitiv und ausführlich. Um es zu optimieren, können wir eine Funktion verwenden, die einen Zielzeiger und eine Quellschnittstelle akzeptiert. Diese Funktion versucht, die Quelle zum Ziel zumarshallen und gibt einen Fehler zurück, wenn dies fehlschlägt. Wir können diese Funktion dann mit all unseren Quellen verwenden und die Fehler zu einem einzigen Fehler zusammenfassen. So können wir dies erreichen:

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 Ansatz kombiniert auf elegante Weise mehrere Fehler in einer einzigen Fehlervariablen. Es vereinfacht die Fehlerbehandlung, verbessert die Lesbarkeit des Codes und erleichtert die Fehlerbehandlung innerhalb von Schleifen und anderen komplexen Szenarien.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Fehler in Go elegant 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage