Sobes.tech
Junior — Middle

Welke gevolgen moeten worden verwacht als er een paniek in de goroutine plaatsvindt?

sobes.tech AI

Antwoord van AI

Als er een panic (panic) plaatsvindt in een goroutine, wordt de uitvoering van die goroutine onderbroken en begint het proces van stack unwinding, waarbij de defer-functies worden aangeroepen.

Als de panic niet wordt afgehandeld (bijvoorbeeld met recover in een deferred functie), leidt dit tot het beëindigen van het hele programma.

Het is belangrijk om te begrijpen dat een panic in één goroutine niet direct invloed heeft op andere goroutines — ze blijven werken, tenzij de panic leidt tot het stoppen van het hele programma.

Voorbeeld van panic-afhandeling:

func() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Panic gevangen en afgehandeld:", r)
        }
    }()
    panic("iets ging mis")
}()