Levée d’exceptions#

raise#

On peut lever explicitement une exception en appelant le mot-clé raise suivi d’une instance d’une classe.

Par exemple en utilisant une exception native :

def dire_bonjour(prénom):
    if not prénom:
        raise ValueError("prénom vide")

Définition d’exceptions à la carte#

On peut ré-utiliser les exceptions natives, ou définir sa propre classe :

class OpérationImpossible(Exception):
    pass


def ma_fonction():
    if cas_impossible:
        raise OpérationImpossible()

Gérer puis re-lever l’exception géré#

Parfois il est utile de re-lever l’exception qu’on vient de gérer.

Dans ce cas, on utilise raise sans argument :

try:
    tente_un_truc_risqué()
except ArithmeticError:
    ...
    raise