Junior — Middle
Explicați mecanismul de interacțiune dintre funcțiile panic, defer și recover în limbajul de programare Go.
sobes.tech AI
Răspuns de la AI
În Go, funcțiile panic, defer și recover sunt legate de gestionarea erorilor și situațiilor excepționale.
panic— provoacă terminarea bruscă a funcției curente și inițiază procesul de "panică", care se propagă pe stiva de apeluri, apelând funcțiiledeferîntârziate.defer— amână executarea unei funcții până la ieșirea din funcția curentă, permițând efectuarea de curățări sau procesări după unpanic.recover— permite "prinderea" unui panic în interiorul unei funcții întârziate și prevenirea încheierii programului.
Exemplu:
func exemplu() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recuperat din panic:", r)
}
}()
fmt.Println("Înainte de panic")
panic("ceva nu a mers bine")
fmt.Println("Aceasta nu va fi executată")
}
Aici, panic provoacă o eroare, defer cu recover o capturează, iar programul continuă să funcționeze fără să se prăbușească.