Sobes.tech
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 uitgestelde defer-functies aanroept.
  • defer — stelt de uitvoering van een functie uit tot het verlaten van de huidige functie, waardoor opruiming of verwerking na een panic mogelijk is.
  • recover — stelt je in staat om een panic binnen 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.