Fonction avec exception en Python
Il est très pratique de lever des exceptions en les spécifiant dans une fonction à l'aide de conditions.
Créons une fonction get_sum
qui renverra la somme des éléments
d'une liste uniquement si la longueur de la liste est
inférieure ou égale à 3. Dans le cas contraire,
qu'elle lève notre exception ToBigLength :
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Maintenant, passons une liste à la fonction get_sum
et affichons le résultat dans la console :
lst = [1, 2, 3, 4]
print(get_sum(lst)) # affichera 6
Il est également possible de gérer l'interception
de plusieurs types d'exceptions dans les fonctions. Créons
une autre classe d'exceptions ToSmallLength :
class ToSmallLength(Exception):
pass
Maintenant, spécifions dans la fonction une condition : si
la longueur de la liste est égale à zéro, qu'elle lève
ToSmallLength. Si aucune exception n'est levée,
qu'elle renvoie la somme de tous les éléments de la liste :
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Pour plus de commodité, nous pouvons placer la liste qui
sera passée en paramètre à la fonction,
la fonction elle-même et son appel dans un bloc try.
Et nous placerons l'interception de nos deux exceptions
dans des blocs except :
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Créez une fonction qui prendra un nombre en paramètre.
Spécifiez-y des conditions :
si le nombre est négatif ou égal à zéro,
qu'elle lève les exceptions correspondantes.
Sinon, que le nombre soit
multiplié par 3.
Testez le fonctionnement de la fonction que vous avez créée
à l'aide d'une construction try-except. Lors de
cela, interceptez également vos exceptions.