Einführung
In Golang ist recover
eine integrierte Funktion, die verwendet werden kann, um von einem panic
zurückzukehren. In diesem Lab wird Ihre Fähigkeit getestet, recover
zum Behandeln von panics
zu verwenden.
This tutorial is from open-source community. Access the source code
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In Golang ist recover
eine integrierte Funktion, die verwendet werden kann, um von einem panic
zurückzukehren. In diesem Lab wird Ihre Fähigkeit getestet, recover
zum Behandeln von panics
zu verwenden.
Die mayPanic
-Funktion im bereitgestellten Code wird aufgerufen, wenn sie aufgerufen wird. Ihre Aufgabe besteht darin, die main
-Funktion zu ändern, um von der Panik zurückzukehren und die Fehlermeldung auszugeben.
recover
-Funktion, um die Panik in der mayPanic
-Funktion zu behandeln.$ go run recover.go
Recovered. Error:
a problem
Hier ist der vollständige Code:
// Go ermöglicht es, von einer Panik zurückzukehren, indem
// die integrierte Funktion `recover` verwendet wird. Ein `recover` kann
// verhindern, dass eine Panik das Programm abbricht und lässt es
// stattdessen fortfahren.
// Ein Beispiel, wo dies nützlich sein kann: Ein Server
// möchte nicht abstürzen, wenn eine der Clientverbindungen
// einen kritischen Fehler aufweist. Stattdessen möchte der Server
// die Verbindung schließen und weiterhin andere Clients bedienen.
// Tatsächlich macht dies Go's `net/http` standardmäßig für HTTP-Server.
package main
import "fmt"
// Diese Funktion stößt eine Panik aus.
func mayPanic() {
panic("a problem")
}
func main() {
// `recover` muss innerhalb einer deferenzierten Funktion aufgerufen werden.
// Wenn die umschließende Funktion in Panik gerät, wird die defer
// aktiviert und ein `recover`-Aufruf darin wird die Panik fangen.
defer func() {
if r := recover(); r!= nil {
// Der Rückgabewert von `recover` ist der Fehler, der in
// dem Aufruf von `panic` ausgelöst wurde.
fmt.Println("Recovered. Error:\n", r)
}
}()
mayPanic()
// Dieser Code wird nicht ausgeführt, da `mayPanic` in Panik gerät.
// Die Ausführung von `main` stoppt am Punkt der Panik und setzt sich
// in der deferenzierten Schließung fort.
fmt.Println("After mayPanic()")
}
In diesem Lab haben Sie gelernt, wie Sie die recover
-Funktion verwenden, um Panics in Golang zu behandeln. Indem Sie recover
verwenden, können Sie verhindern, dass Ihr Programm abstürzt und den Code weiterhin ausführen.