Junior — Middle
Leg uit hoe de functies panic, defer en recover in de programmeertaal Go met elkaar samenwerken.
sobes.tech AI
Antwoord van AI
In Go zijn de functies panic, defer en recover gerelateerd aan foutafhandeling en uitzonderingssituaties.
panic— veroorzaakt de plotselinge beëindiging van de huidige functie en start het "paniek"-proces, dat zich door de call stack verspreidt en uitgesteldedefer-functies aanroept.defer— stelt de uitvoering van een functie uit tot het verlaten van de huidige functie, waardoor opruiming of verwerking na eenpanicmogelijk is.recover— stelt je in staat om eenpanicbinnen een uitgestelde functie "te vangen" en te voorkomen dat het programma stopt.
Voorbeeld:
func voorbeeld() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Hersteld van panic:", r)
}
}()
fmt.Println("Voor panic")
panic("iets ging mis")
fmt.Println("Dit wordt niet uitgevoerd")
}
Hier veroorzaakt panic een fout, defer met recover vangt deze op en het programma blijft zonder te crashen doorgaan.