¿Cuál es la diferencia entre error y excepción en Python?
| Python | Programación | Código |
En este tutorial aprenderás la diferencia entre errores y excepciones en Python, así como la manera correcta de manejarlos para crear programas más robustos y confiables.
Al finalizar, comprenderás cuándo un problema en tu código es un error o una excepción, y cómo manejar excepciones para evitar que tu programa se detenga inesperadamente.
¿Qué es un error en Python?
Un error es un problema en el código que impide que el programa se ejecute correctamente.
Existen distintos tipos de errores:
- Errores de sintaxis (SyntaxError): Se producen cuando el código no sigue las reglas del lenguaje.
- Errores de indentación (IndentationError): Ocurren cuando la sangría del código es incorrecta.
- Errores de tipo (TypeError): Surgen cuando se usa un tipo de dato de forma incorrecta.
Ejemplo de un error de sintaxis:
print("Hola mundo" # Falta un paréntesis de cierre
¿Qué es una excepción en Python?
Una excepción es un evento que ocurre durante la ejecución del programa y que interrumpe su flujo normal. Las excepciones pueden ser capturadas y manejadas para evitar que el programa falle completamente.
- ZeroDivisionError: División entre cero.
- FileNotFoundError: Archivo no encontrado.
- ValueError: Valor no permitido para una operación.
Ejemplo de excepción:
try:
resultado = 10 / 0
except ZeroDivisionError:
print("No se puede dividir entre cero")
Diferencias clave entre error y excepción
| Concepto | Error | Excepción |
|---|---|---|
| Momento | Se detecta antes o durante la ejecución | Se detecta durante la ejecución |
| Manejo | Generalmente no se puede manejar | Se puede manejar con try / except |
| Ejemplo | SyntaxError, IndentationError |
ZeroDivisionError, ValueError |
Cómo manejar excepciones en Python
Python ofrece la instrucción try-except para capturar y manejar excepciones:
try:
numero = int(input("Ingresa un número: "))
print(10 / numero)
except ValueError:
print("Debes ingresar un número válido")
except ZeroDivisionError:
print("No se puede dividir entre cero")
finally:
print("Operación finalizada")
finallyse ejecuta siempre, sin importar si hubo excepción o no.
Buenas prácticas
- Siempre anticipa posibles errores que puedan ocurrir en tu código.
- Usa excepciones específicas en lugar de
except:general. - No ignores las excepciones importantes: manejar errores correctamente mejora la confiabilidad de tu programa.