try
y except
en Python
En Python, try
y except
son bloques de código utilizados para manejar excepciones y gestionar errores de manera controlada. El manejo de excepciones es una práctica fundamental para escribir código robusto y resistente a fallos. El bloque try
permite ejecutar un conjunto de instrucciones, mientras que el bloque except
se encarga de manejar las excepciones que puedan surgir durante la ejecución del código en el bloque try
.
1. Estructura Básica de try
y except
try:
# Bloque de código que puede generar una excepción
# ...
except ExcepcionTipo as nombre_excepcion:
# Código para manejar la excepción
# ...
except OtraExcepcionTipo as otra_excepcion:
# Código para manejar otra excepción
# ...
else:
# Bloque de código que se ejecuta si no se producen excepciones en el bloque try
# ...
finally:
# Bloque de código que se ejecuta siempre, haya o no haya excepciones
# ...
-
try
: Contiene el bloque de código que puede generar excepciones. Si se produce alguna excepción, la ejecución se transfiere al bloqueexcept
. -
except ExcepcionTipo as nombre_excepcion
: Captura y maneja excepciones del tipo especificado (ExcepcionTipo
). Se puede utilizaras
para asignar un nombre a la excepción capturada para su posterior referencia. -
else
: Opcional. Contiene un bloque de código que se ejecuta si no se produce ninguna excepción en el bloquetry
. -
finally
: Opcional. Contiene un bloque de código que se ejecuta siempre, independientemente de si se produjo una excepción o no en el bloquetry
.
2. Tipos Comunes de Excepciones
Algunos tipos comunes de excepciones incluyen:
-
ZeroDivisionError
: Ocurre cuando se intenta dividir por cero. -
FileNotFoundError
: Ocurre cuando se intenta acceder a un archivo que no existe. -
TypeError
: Ocurre cuando se realiza una operación no permitida para el tipo de datos. -
ValueError
: Ocurre cuando una función recibe un argumento del tipo correcto pero con un valor incorrecto.
3. Ejemplos de Uso
a. Manejo de ZeroDivisionError
try:
resultado = 10 / 0
except ZeroDivisionError as e:
print(f"Error: {e}")
b. Manejo de FileNotFoundError
try:
with open('archivo_no_existente.txt', 'r') as archivo:
contenido = archivo.read()
except FileNotFoundError as e:
print(f"Error: {e}")
c. Manejo de TypeError
try:
resultado = "10" + 5
except TypeError as e:
print(f"Error: {e}")
d. Uso de else
y finally
try:
resultado = 10 / 2
except ZeroDivisionError as e:
print(f"Error: {e}")
else:
print(f"Resultado: {resultado}")
finally:
print("Este bloque se ejecuta siempre.")
4. Excepciones Personalizadas
Es posible crear excepciones personalizadas mediante la definición de clases que hereden de la clase base Exception
. Estas excepciones pueden ser levantadas (raise
) en situaciones específicas dentro del código.
class MiErrorPersonalizado(Exception):
def __init__(self, mensaje):
super().__init__(mensaje)
try:
raise MiErrorPersonalizado("Este es un mensaje personalizado.")
except MiErrorPersonalizado as e:
print(f"Error personalizado: {e}")
5. Conclusiones
El manejo de excepciones con try
y except
es esencial para escribir código robusto y manejar situaciones imprevistas. La capacidad de personalizar excepciones y utilizar else
y finally
proporciona flexibilidad en la gestión de errores en Python. Es recomendable utilizar el manejo de excepciones de manera selectiva y específica para cada tipo de situación.