Entendiendo `panic`
Parte de la sección Lógica y Flujo del Journey de GO de Coddy — lección 42 de 68.
En Go, panic es una función integrada utilizada para situaciones verdaderamente excepcionales en las que su programa encuentra un error irrecuperable y debe detenerse de inmediato. A diferencia de los errores regulares que se manejan con elegancia, panic se reserva para fallos catastróficos que indican que algo anda fundamentalmente mal con la lógica o el entorno de su programa.
Cuando se llama a panic, detiene inmediatamente la ejecución normal de la función actual y comienza a desenrollar la pila de llamadas. Esto lo hace muy diferente del enfoque típico de Go de devolver errores que pueden ser manejados por el código que realiza la llamada.
En el Go idiomático, panic se usa raramente. La comunidad de Go favorece fuertemente el manejo explícito de errores a través de valores de retorno en lugar del manejo de errores basado en pánicos. Podrías encontrar panic en situaciones como acceder a un array fuera de los límites, desreferenciar un puntero nil, o cuando una librería detecta un estado imposible que indica un error de programación.
La mayoría de los programas en Go deberían manejar los errores de forma elegante utilizando la interfaz de error estándar sobre la que has estado aprendiendo. panic solo debe considerarse cuando realmente no hay una forma razonable de que tu programa continúe ejecutándose.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Hoja de referencia
En Go, panic es una función incorporada para errores irrecuperables que detiene la ejecución del programa de inmediato:
panic("something went terribly wrong")Cuando se llama a panic, detiene la función actual y desenrolla la pila de llamadas. Usa panic con moderación, solo para fallos catastróficos donde el programa no pueda continuar. Go favorece el manejo explícito de errores a través de valores de retorno en lugar del manejo de errores basado en pánicos.
Las situaciones comunes de pánico incluyen el acceso a arreglos fuera de los límites, la desreferencia de punteros nil o estados imposibles del programa que indican errores.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Flujo de control avanzado
Switch con `fallthrough`Salir de bucles anidadosContinuar un bucle específicoLa sentencia `goto`Repaso: Control de bucles avanzado4Proyecto: Lista de tareas sencilla
Configuración del proyectoAñadir una tarea7Manejo de errores a fondo
Tipos de error personalizadosEnvolver errores con `%w`Desenvolver con `errors.Is`Desenvolver con `errors.As`Entendiendo `panic`Uso de `recover`Repaso - División segura2Estructuras y Métodos
Definición de métodos en estructurasReceptores de valorReceptores de punteroElegir receptoresMétodos vs FuncionesResumen - Comportamiento de estructuras5Mapas en profundidad
Mapas de StructsPunteros como valores de MapVerificación de Maps NilComparación de MapsResumen - Contador de frecuencia de palabras3Interfaces (Conceptos básicos)
¿Qué es una interfaz?Definir una interfazImplementar una interfazUso de tipos de interfazInterfaz vacíaAserciones de tipoType SwitchResumen: Formas y comportamientos