errors für Go: Das komplette Handbuch mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Die errors-Bibliothek für Go: Das ultimative Handbuch für bessere Fehlerbehandlung

1. Was ist das und warum braucht man es?

Die errors-Bibliothek ist das Standardpaket der Sprache Go, das grundlegende Funktionen zum Erstellen, Formatieren und Behandeln von Fehlern bereitstellt. Im Gegensatz zu vielen anderen Sprachen, die Ausnahmen (Exceptions) als primären Mechanismus zur Fehlerbehandlung nutzen, verwendet Go die explizite Rückgabe von Fehlerwerten aus Funktionen. Dies macht den Programmablauf vorhersehbarer und kontrollierbarer.

Die Hauptaufgabe der Bibliothek ist es, eine einfache und effiziente Möglichkeit zu bieten, neue Fehler zu erstellen, ihre Typen zu vergleichen und Kontextinformationen hinzuzufügen (z. B. das "Wrapppen" von Fehlern). In Go ist ein Fehler einfach das Interface error, das von jedem Typ implementiert wird, der eine Methode Error() string besitzt. Dies bietet enorme Flexibilität: Sie können eigene Fehlertypen mit zusätzlichen Feldern (Fehlercode, Anfragedaten usw.) erstellen.

Warum ist es notwendig? Ohne sie ist es unmöglich, eine zuverlässige Go-Anwendung zu schreiben. Jedes Mal, wenn eine Funktion fehlschlagen kann (Dateiarbeit, Netzwerk, Datenbank), gibt sie einen Fehler zurück. Das Ignorieren von Fehlern (Zuweisung an die Variable _) gilt als schlechte Praxis. Die errors-Bibliothek ermöglicht es nicht nur mitzuteilen, was schiefgelaufen ist, sondern auch eine Fehlerkette aufzubauen, um beim Debuggen genau zu wissen, in welcher Phase der Fehler aufgetreten ist.

2. Installation

Das Paket errors ist Teil der Go-Standardbibliothek. Das bedeutet, dass keine zusätzliche Installation erforderlich ist. Es ist bei der Installation eines jeden Go SDK sofort verfügbar. Um es zu nutzen, importieren Sie es einfach in Ihren Code:

import "errors"

Wenn Sie Go Modules verwenden (Standard seit Go 1.11+), ist das Paket automatisch verfügbar. Für die Standardbibliothek müssen keine go get-Befehle ausgeführt werden.

Wichtig: Es gibt auch die beliebte Drittanbieter-Bibliothek github.com/pkg/errors, die erweiterte Funktionen (Call-Stacks, Formatierung) bietet. In diesem Artikel konzentrieren wir uns jedoch ausschließlich auf das Standardpaket errors, das die Grundlage für jede Fehlerbehandlung in Go bildet.

3. Schnellstart

Ein minimales funktionsfähiges Beispiel zum Erstellen und Behandeln eines Fehlers:

package main

import (
    "errors"
    "fmt"
)

// Funktion, die zwei Zahlen dividiert. Wenn der Divisor Null ist, wird ein Fehler zurückgegeben.
func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("Division durch Null nicht möglich")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 2)
    if err != nil {
        fmt.Println("Fehler:", err)
    } else {
        fmt.Println("Ergebnis:", result)
    }

    // Versuchen wir es mit einem Fehler
    result2, err2 := divide(10, 0)
    if err2 != nil {
        fmt.Println("Fehler:", err2) // Ausgabe: Fehler: Division durch Null nicht möglich
    } else {
        fmt.Println("Ergebnis:", result2)
    }
}

In diesem Beispiel haben wir mit errors.New() einen einfachen Fehler erstellt und sein Vorhandensein auf die Standardweise if err != nil überprüft.

4. Wichtige Funktionen und Methoden

Nachfolgend finden Sie 8 Schlüsselfunktionen/-methoden des Pakets errors mit detaillierter Beschreibung und Beispielen.

4.1 errors.New(text string) error

Signatur: func New(text string) error

Was es tut: Erstellt einen neuen Fehler mit dem angegebenen Text.

Empfehlungen