Junior — Middle
Explique el mecanismo de interacción entre las funciones panic, defer y recover en el lenguaje de programación Go.
sobes.tech AI
Respuesta de la IA
En Go, las funciones panic, defer y recover están relacionadas con el manejo de errores y situaciones excepcionales.
panic— provoca la finalización abrupta de la función actual y comienza el proceso de "pánico", que se propaga por la pila de llamadas, llamando a las funcionesdeferaplazadas.defer— pospone la ejecución de una función hasta que la función actual finalice, permitiendo realizar limpieza o procesamiento después de unpanic.recover— permite "capturar" un pánico dentro de una función aplazada y evitar que el programa termine.
Ejemplo:
func ejemplo() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recuperado de pánico:", r)
}
}()
fmt.Println("Antes del pánico")
panic("algo salió mal")
fmt.Println("Esto no se ejecutará")
}
Aquí, panic provoca un error, defer con recover lo captura y el programa continúa funcionando sin fallar.