Sobes.tech
Junior — Middle

Wie werden Ausnahmen und Fehler in Ihrer Anwendung verwaltet?

sobes.tech KI

Antwort von AI

In Go unterscheidet sich die Fehlerbehandlung von vielen anderen Sprachen, da es hier keine herkömmlichen Ausnahmen gibt. Stattdessen geben Funktionen in der Regel einen Fehler (error) als zweiten Rückgabewert zurück.

Hauptansätze:

  • Fehlerüberprüfung nach Funktionsaufruf:

    result, err := someFunction()
    if err != nil {
        // Fehlerbehandlung
        log.Println("Fehler:", err)
        return err
    }
    // Weiterverarbeitung mit result
    
  • Eigene Fehler-Typen erstellen mit errors.New oder fmt.Errorf für aussagekräftigere Nachrichten.

  • Panik (panic) und Wiederherstellung (recover) werden selten verwendet, hauptsächlich bei kritischen Fehlern, die im normalen Ablauf nicht auftreten sollten.

  • Fehlerprotokollierung und Weitergabe nach oben in der Stapel für eine zentrale Fehlerbehandlung.

Beispiel für Fehlerbehandlung:

package main

import (
    "errors"
    "fmt"
)

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("Division durch Null")
    }
    return a / b, nil
}

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

Auf diese Weise werden Fehler in Go explizit behandelt, was die Lesbarkeit und Zuverlässigkeit des Codes erhöht.