Introducción
En Golang, recover
es una función integrada que se puede utilizar para recuperar de un pánico. Esta práctica te ayudará a probar tu habilidad para utilizar recover
para manejar los pánicos.
This tutorial is from open-source community. Access the source code
💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí
En Golang, recover
es una función integrada que se puede utilizar para recuperar de un pánico. Esta práctica te ayudará a probar tu habilidad para utilizar recover
para manejar los pánicos.
La función mayPanic
en el código proporcionado causará un pánico cuando se invoque. Tu tarea es modificar la función main
para recuperar del pánico e imprimir el mensaje de error.
recover
para manejar el pánico en la función mayPanic
.$ go run recover.go
Recuperado. Error:
un problema
A continuación está el código completo:
// Go permite _recuperarse_ de un pánico, mediante
// el uso de la función integrada `recover`. Un `recover` puede
// detener un `pánico` que abortaría el programa y permitirle
// continuar con la ejecución en su lugar.
// Un ejemplo de dónde esto puede ser útil: un servidor
// no querría detenerse si una de las conexiones de cliente
// presenta un error crítico. En cambio, el servidor
// querría cerrar esa conexión y continuar atendiendo
// a otros clientes. De hecho, esto es lo que hace por defecto
// Go's `net/http` para los servidores HTTP.
package main
import "fmt"
// Esta función produce un pánico.
func mayPanic() {
panic("un problema")
}
func main() {
// `recover` debe ser llamado dentro de una función deferrada.
// Cuando la función envolvente entra en pánico, la defer
// se activará y una llamada a `recover` dentro de ella capturará
// el pánico.
defer func() {
if r := recover(); r!= nil {
// El valor de retorno de `recover` es el error generado en
// la llamada a `panic`.
fmt.Println("Recuperado. Error:\n", r)
}
}()
mayPanic()
// Este código no se ejecutará, porque `mayPanic` produce un pánico.
// La ejecución de `main` se detiene en el punto del
// pánico y se reanuda en la cláusula deferrada.
fmt.Println("Después de mayPanic()")
}
En esta práctica, aprendiste cómo utilizar la función recover
para manejar los pánicos en Golang. Al utilizar recover
, puedes evitar que tu programa se detenga y continuar con la ejecución del código.