En Python, las excepciones son eventos que representan un error, y que que interrumpen el flujo normal de ejecución de un programa
Las excepciones se utilizan para señalar condiciones excepcionales que requieren un manejo especial (por ejemplo, la división por cero, la referencia a una variable no definida o la apertura de un archivo que no existe)
Algunas de las características de las excepciones son:
- Interrupción del flujo normal: Las excepciones alteran el flujo normal del programa.
- Excepciones personalizadas: Permiten manejar errores de manera específica y controlada.
- Herencia de excepciones: Las excepciones en Python son clases (esto permite crear jerarquías de excepciones).
Excepciones base
En Python todas las excepciones heredan de las Excepciones base,
- Exception: Clase base para todas las excepciones en Python, excepto las que indican la salida del intérprete.
- BaseException: Clase base para todas las excepciones, incluidas aquellas que se utilizan para controlar la finalización del programa.
Excepciones Estándar en Python
Python incluye una gran cantidad de excepciones estándar que cubren diversos errores y condiciones excepcionales. Vamos con una lista de algunas de las excepciones estándar más comunes.
Excepciones de error en tiempo de ejecución
try:
resultado = 1 / 0
except ZeroDivisionError as e:
print(f"Error de división por cero: {e}")
- ArithmeticError: Clase base para errores numéricos
- ZeroDivisionError: Se lanza cuando se intenta dividir por cero
- OverflowError: Se lanza cuando un cálculo numérico excede el límite máximo permitido
- FloatingPointError: Se lanza cuando se produce un error en una operación de punto flotante
Excepciones de operaciones de entrada/salida
try:
with open('archivo_que_no_existe.txt', 'r') as archivo:
contenido = archivo.read()
except FileNotFoundError as e:
print(f"Archivo no encontrado: {e}")
- IOError: Clase base para errores de entrada/salida
- FileNotFoundError: Se lanza cuando un archivo o directorio no se encuentra
- PermissionError: Se lanza cuando una operación no tiene los permisos adecuados
Excepciones de argumentos
try:
numero = int("abc")
except ValueError as e:
print(f"Error de valor: {e}")
- TypeError: Se lanza cuando una operación o función se aplica a un objeto de tipo inapropiado
- ValueError: Se lanza cuando una operación o función recibe un argumento con el tipo correcto pero un valor inapropiado
Excepciones de variables y atributos
try:
print(variable_no_definida)
except NameError as e:
print(f"Nombre de variable no encontrado: {e}")
- NameError: Se lanza cuando una variable local o global no se encuentra
- AttributeError: Se lanza cuando se intenta acceder a un atributo que no existe en un objeto
Excepciones del sistema
- SystemError: Se lanza cuando se detecta un error interno en Python
- KeyboardInterrupt: Se lanza cuando se interrumpe la ejecución del programa mediante la entrada del usuario (por ejemplo, Ctrl+C)