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 :

pythondef 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 :

pythonlst = [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 :

pythonclass 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 :

pythondef 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 :

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

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.

Задание 2

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.