Sobes.tech
Junior — Middle

¿Se puede capturar y manejar pánicos dentro de una llamada defer en Go?

sobes.tech AI

Respuesta de la IA

En Go, puedes usar defer para manejar pánicos, pero la llamada a defer en sí no captura el pánico; debes capturar el pánico dentro de la función diferida usando recover().

Ejemplo:

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

Aquí, recover() se llama dentro de la función diferida y permite capturar el pánico que ocurre en safeCall. De esta manera, no se puede "capturar" directamente en defer, pero sí se puede manejar dentro de la función diferida con recover().

¿Se puede capturar y manejar pánicos dentro de una… - sobes.tech