Heim > Backend-Entwicklung > Golang > Was sind die Best Practices für den Umgang mit Fehlern in Go?

Was sind die Best Practices für den Umgang mit Fehlern in Go?

Linda Hamilton
Freigeben: 2024-12-31 05:28:13
Original
1021 Leute haben es durchsucht

What are the Best Practices for Handling Errors in Go?

Standard-Fehlerbehandler in Go

Go verfügt über mehrere idiomatische Ansätze zur Fehlerbehandlung:

1. Fehlervariablen behoben

var (
    ErrSomethingBad = errors.New("some string")
    ErrKindFoo      = errors.New("foo happened")
)
Nach dem Login kopieren

2. Fehlertypen

type SomeError struct {
    ExtraInfo int
}
func (e SomeError) Error() string { /* … */ }
Nach dem Login kopieren

3. Ad-hoc-Fehler

func SomepackageFunction() error {
    return errors.New("not implemented")
}
Nach dem Login kopieren

4. Standardbibliotheksfehler

func SomeFunc() error {
    return io.EOF
}
Nach dem Login kopieren

5. Fehlerschnittstellen

type Error interface {
    error
    Timeout() bool
    Temporary() bool
}
Nach dem Login kopieren

6. Wrapping-Fehler (Go 1.13)

func SomepackageFunction() error {
    err := somethingThatCanFail()
    if err != nil {
        return fmt.Errorf("some context: %w", err)
    }
}
Nach dem Login kopieren

Den richtigen Ansatz wählen

Die bevorzugten Methoden sind:

  • Fehler behoben Variablen oder Fehlertypen für Fehler, die Benutzer möglicherweise speziell testen möchten.
  • Ad-hoc-Fehler oder Standardbibliotheksfehler für kleinere Fehler, die wahrscheinlich nicht getestet werden.
  • Fehlerschnittstellen für Fehler mit bestimmtem Verhalten oder Eigenschaften.
  • Umschlossene Fehler zum Hinzufügen von Kontext zu vorhandenen Fehlern (Go 1.13 ).

Vorteile:

  • Feste Fehlervariablen:Einfach zu testen und zu vergleichen.
  • Fehlertypen: Erweiterbar mit zusätzlichen Informationen für Fehler Handhabung.
  • Ad-hoc-Fehler: Prägnant für kleinere Fehler.
  • Fehlerschnittstellen: Erzwingen Sie spezifisches Fehlerverhalten und erleichtern Sie Polymorphismus.
  • Umschlossene Fehler: Stellen Sie Kontext bereit, ohne einen benutzerdefinierten Fehler zu erstellen Typen.

Weiterführende Literatur:

  • [Fehler effektiv beheben](https://go.dev/doc/articles/errors)
  • [The Go Blog: Fehlerbehandlung und Go](https://blog.golang.org/error-handling-and-go)
  • [Dave Cheney: Inspecting Errors](https://dave.cheney.net/2016/04/07 /inspecting-errors)
  • [Peter Bourgon: Programmieren mit Fehler](https://go.dev/blog/errors)

Das obige ist der detaillierte Inhalt vonWas sind die Best Practices für den Umgang mit Fehlern in Go?. 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