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 Funktionendeferaufruft.defer— verzögert die Ausführung einer Funktion bis zum Verlassen der aktuellen Funktion, was die Durchführung von Aufräumarbeiten oder Verarbeitung nach einempanicermöglicht.recover— erlaubt es, einenpanicinnerhalb 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.