El control de errores
1. Qué es el control de errores? #
El control de errores es una técnica utilizada en programación para manejar situaciones en las que ocurren errores o excepciones durante la ejecución de un programa. En lugar de que el programa se detenga abruptamente cuando ocurre un error, puedes manejar el error de manera controlada, mostrando un mensaje, realizando una acción específica, o incluso ignorando el error de manera segura.
2. Cómo se hace el control de errores en Python? #
Python ofrece una estructura llamada try-except para manejar errores. La idea es que pongas el código que podría causar un error dentro de un bloque try, y si ocurre un error, el programa pasa al bloque except, donde puedes manejar el error.
3. Estructura básica de try-except #
1try: 2 # Código que podría causar un error 3except: 4 # Código que se ejecuta si ocurre un error
4. Ejemplos de control de errores #
-
Manejo básico de un error:
1try: 2 numero = int(input("Ingresa un número: ")) 3 print(f"El número es: {numero}") 4except: 5 print("Eso no es un número válido.")Salida de consola - ¿Qué hace?: Este código intenta convertir la entrada del usuario en un número entero. Si el usuario ingresa algo que no puede convertirse en número, el programa muestra un mensaje de error en lugar de fallar.
-
Manejo de un error específico:
1try: 2 resultado = 10 / 0 3except ZeroDivisionError: 4 print("No se puede dividir por cero.")Salida de consola No se puede dividir por cero.
- ¿Qué hace?: Este código intenta dividir
10por0, lo cual genera un error de división por cero (ZeroDivisionError). El programa captura ese error específico y muestra un mensaje apropiado.
- ¿Qué hace?: Este código intenta dividir
-
Usar
elsecontry-except:1try: 2 numero = int(input("Ingresa un número: ")) 3except ValueError: 4 print("Eso no es un número válido.") 5else: 6 print(f"El número es: {numero}")Salida de consola - ¿Qué hace?: Si el código en
tryno genera un error, se ejecuta el bloqueelse. De lo contrario, se ejecuta el bloqueexcept.
- ¿Qué hace?: Si el código en
-
Usar
finallypara ejecutar código sin importar si hubo un error:1try: 2 archivo = open("archivo_inexistente.txt", "r") 3except FileNotFoundError: 4 print("El archivo no existe.") 5finally: 6 print("Esto se ejecuta siempre.")Salida de consola El archivo no existe. Esto se ejecuta siempre.
- ¿Qué hace?: El bloque
finallyse ejecuta siempre, sin importar si ocurrió un error o no. Es útil para limpiar recursos como cerrar archivos o liberar conexiones.
- ¿Qué hace?: El bloque
5. Por qué es importante el control de errores? #
El control de errores es fundamental para escribir programas robustos y confiables. Ayuda a manejar situaciones inesperadas sin que el programa se bloquee o falle, mejorando la experiencia del usuario y facilitando la depuración y el mantenimiento del código.
Resumen del tema
Conceptos clave #
- Estructura
try / except / else / finally:try: código potencialmente propenso a excepciones.except TipoExcepcion as err: captura selectiva de tipos concretos de error (ej.ValueError,ZeroDivisionError).else: código que se ejecuta únicamente si el bloquetryfinalizó sin ningún error.finally: bloque de limpieza obligatoria ejecutado siempre (haya o no ocurrido excepción).
- Captura Específica vs Genérica: evitar
except:desnudo; capturar siempre excepciones explícitas para no enmascarar errores de sintaxis o interrupciones de teclado (KeyboardInterrupt).
Qué debes recordar #
Maneja errores con try/except capturando tipos de excepción concretos y utiliza finally para tareas obligatorias de liberación de recursos.