25개 이상의 토픽을 선택하실 수 없습니다.
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
|
- 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é()
- exeept ArithmeticError:
- ...
- raise
-
- raise from
- ----------
-
- On peut donner une *cause directe* lorsqu'on lève un exception avec ``from``::
-
- def appelle_maman():
- numéro = répertoire["Maman"]
-
- try:
- appelle_maman()
- except KeyError as e:
- raise AppelImpossible from e
|