Sobes.tech
Junior — Middle

Miért szükséges a recover funkció használata a deferben Go-ban?

sobes.tech MI

Válasz az MI-től

Go nyelvben a recover függvényt arra használják, hogy elfogja a panic-eket és megakadályozza a program váratlan leállását. Azonban a recover csak akkor működik, ha defer-ben hívják meg.

A recover defer-ben való használata lehetővé teszi:

  • Biztonságosan kezelni egy pánikot, például hibát naplózni vagy erőforrásokat tisztítani.
  • Folytatni a program futását egy pánik után, ha ez lehetséges.

Példa:

func safeFunction() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Pánikból való helyreállás:", r)
        }
    }()
    // Kód, ami pánikot okozhat
    panic("valami rosszul sült el")
}

Ha a recover-t defer-en kívül hívják meg, nem fogja elkapni a pánikot, és a program váratlanul leáll. Ezért a recover-t mindig a defer-be kell helyezni a helyes kivételkezelés érdekében.