Captura de diferentes tipos de excepciones en Python
En el mismo código, puede ser necesario capturar diferentes tipos de excepciones.
Supongamos que necesitamos capturar una excepción al dividir por cero. Con este tipo de error, se genera la excepción:
ZeroDivisionError: division by zero
Para capturarla, el nombre de la excepción debe
escribirse en el bloque except:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: no dividas por cero')
También supongamos que tenemos una lista:
lst = [1, 2, 3]
Si en el bloque try se coloca código con otro
error potencial, por ejemplo, acceder a un
elemento que no existe, entonces la excepción,
no capturada en el bloque except, se propagará
y se mostrará en la consola. Debido a esto
se detendrá la ejecución del código:
lst = [1, 2, 3]
try:
print(lst[4]) # generará IndexError: list index out of range
except ZeroDivisionError:
print('error: no dividas por cero')
Para solucionar esta situación, es necesario especificar en cada bloque el nombre del tipo correspondiente de excepción. Añadamos a nuestro código la excepción por elemento faltante:
try:
print(lst[4])
except ZeroDivisionError:
print('error: no dividas por cero')
except IndexError:
print('error: el elemento no existe')
Se tiene el siguiente código:
txt = '2'
res1 = txt + 3
res2 = txt1
Escriba el código para capturar las excepciones
presentadas en las variables res1 y res2.