Interception de différents types d'exceptions en Python
Dans un même code, il peut être nécessaire d'intercepter différents types d'exceptions.
Supposons que nous ayons besoin d'attraper une exception lors d'une division par zéro. Pour ce type d'erreur, l'exception suivante est levée :
ZeroDivisionError: division by zero
Pour l'intercepter, le nom de l'exception doit être
spécifié dans le bloc except :
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
Supposons également que nous ayons une liste :
lst = [1, 2, 3]
Si, dans le bloc try, on place du code avec une autre
erreur potentielle, par exemple l'affichage d'un élément
inexistant, alors l'exception non attrapée par le bloc except
se propagera et sera affichée dans la console, ce qui
arrêtera l'exécution du code :
lst = [1, 2, 3]
try:
print(lst[4]) # produira IndexError: list index out of range
except ZeroDivisionError:
print('error: do not divide by zero')
Pour résoudre cette situation, il faut spécifier dans chaque bloc le nom du type d'exception correspondant. Ajoutons à notre code la gestion de l'exception pour un élément manquant :
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem is not exist')
Voici le code suivant :
txt = '2'
res1 = txt + 3
res2 = txt1
Écrivez le code pour intercepter les exceptions
présentées dans les variables res1 et res2.