Sobes.tech
Junior — Middle

¿Qué consecuencias se deben esperar si ocurre un pánico en una gorutina?

sobes.tech AI

Respuesta de la IA

Si ocurre un pánico (panic) en una goroutine, la ejecución de esa goroutine se interrumpe y comienza el proceso de deshacer la pila (stack unwinding), durante el cual se llaman las funciones diferidas (defer).

Si el pánico no se maneja (por ejemplo, con recover en una función diferida), provocará la finalización de toda la programa.

Es importante entender que un pánico en una goroutine no afecta directamente a otras goroutines — ellas continúan trabajando, a menos que el pánico cause la detención de toda la programa.

Ejemplo de manejo de pánico:

func() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Pánico capturado y manejado:", r)
        }
    }()
    panic("algo salió mal")
}()