Levée d’exceptions

raise

On peut lever explicitement un 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éner.

Dans ce cas, on utilise raise sans argument:

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