|
- Exceptions natives
- ==================
-
- Les exceptions sont toujours des instances de classes, et les classes d'exceptions héritent
- toujours de la class ``BaseException``.
-
- Le nom de l'exception est en réalité le nom de la classe, ici l'exception levée par la ligne
- ``return 1 / 0`` est une instance de la classe ``ZeroDivisionError``.
-
- Cette exception fait partie des nombreuses exceptions préféfinies en Python. Ensemble, elles
- forment une *hiérarchie* dont voici un extrait:
-
- .. code-block:: text
-
-
- BaseException
- +-- SystemExit
- +-- KeyboardInterrupt
- +-- Exception
- +-- ArithmeticError
- | +-- ZeroDivisionError
- +-- LookupError
- | +-- IndexError
- | +-- KeyError
- +-- OSError
- | +-- FileNotFoundError
- +-- TypeError
- +-- ValueError
-
-
- IndexError et KeyError
- ----------------------
-
- ``IndexError`` est levée quand on essaye d'accéder à un index trop grand
- dans une liste::
-
- ma_liste = ["pomme"]
- ma_liste[2] = "abricot"
-
- # IndexError: list assignment index out of range
-
- ``KeyError`` est levée quand on essaye d'accéder à une clé qui n'existe pas
- dans un dictionnaire::
-
- scores = { "Alice" : 10 }
- score_de_bob = scores["Bob"]
-
- # KeyError: 'Bob'
-
- Notez que la description de ``KeyError`` est la valeur de la clé manquante.
-
- ValueError
- ----------
-
- ``ValueError`` est levée (entre autres) quand on tente une maunvaise conversions::
-
- entrée_utilisateur = "pas un nombre"
- valeur = int(entrée_utilisateur)
-
-
- KeyboardInterrupt
- -----------------
-
- ``KeyboardInterrupt`` est levée quand on fait ``ctrl-c``.
-
-
- FileNotFoundError
- ------------------
-
- ``FileNotFoundError`` est levée quand on essaye d'ouvrir
- en lecture un fichier qui n'exsiste pas::
-
-
- with open("fichier-inexistant.txt", "r") as f:
- contenu = f.read()
|