Sobes.tech
Junior — Middle

Erklären Sie den Interaktionsmechanismus der Funktionen panic, defer und recover in der Programmiersprache Go.

sobes.tech KI

Antwort von AI

In Go sind die Funktionen panic, defer und recover mit der Fehlerbehandlung und Ausnahmesituationen verbunden.

  • panic — löst das plötzliche Beenden der aktuellen Funktion aus und startet den "Panik"-Prozess, der den Aufrufstapel nach oben hin durchläuft und die verzögerten Funktionen defer aufruft.
  • defer — verzögert die Ausführung einer Funktion bis zum Verlassen der aktuellen Funktion, was die Durchführung von Aufräumarbeiten oder Verarbeitung nach einem panic ermöglicht.
  • recover — erlaubt es, einen panic innerhalb einer verzögerten Funktion "abzufangen" und das Programm am Beenden zu hindern.

Beispiel:

func beispiel() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Wiederhergestellt von panic:", r)
        }
    }()

    fmt.Println("Vor panic")
    panic("etwas ist schief gelaufen")
    fmt.Println("Dies wird nicht ausgeführt")
}

Hier löst panic einen Fehler aus, defer mit recover fängt ihn ab und das Programm läuft ohne Absturz weiter.