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.

02-exceptions-natives.rst 1.8 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. Exceptions natives
  2. ==================
  3. Les exceptions sont toujours des instances de classes, et les classes d'exceptions héritent
  4. toujours de la class ``BaseException``.
  5. Le nom de l'exception est en réalité le nom de la classe, ici l'exception levée par la ligne
  6. ``return 1 / 0`` est une instance de la classe ``ZeroDivisionError``.
  7. Cette exception fait partie des nombreuses exceptions préféfinies en Python. Ensemble, elles
  8. forment une *hiérarchie* dont voici un extrait:
  9. .. code-block:: text
  10. BaseException
  11. +-- SystemExit
  12. +-- KeyboardInterrupt
  13. +-- Exception
  14. +-- ArithmeticError
  15. | +-- ZeroDivisionError
  16. +-- LookupError
  17. | +-- IndexError
  18. | +-- KeyError
  19. +-- OSError
  20. | +-- FileNotFoundError
  21. +-- TypeError
  22. +-- ValueError
  23. IndexError et KeyError
  24. ----------------------
  25. ``IndexError`` est levée quand on essaye d'accéder à un index trop grand
  26. dans une liste::
  27. ma_liste = ["pomme"]
  28. ma_liste[2] = "abricot"
  29. # IndexError: list assignment index out of range
  30. ``KeyError`` est levée quand on essaye d'accéder à une clé qui n'existe pas
  31. dans un dictionnaire::
  32. scores = { "Alice" : 10 }
  33. score_de_bob = scores["Bob"]
  34. # KeyError: 'Bob'
  35. Notez que la description de ``KeyError`` est la valeur de la clé manquante.
  36. ValueError
  37. ----------
  38. ``ValueError`` est levée (entre autres) quand on tente une maunvaise conversions::
  39. entrée_utilisateur = "pas un nombre"
  40. valeu = int(entrée_utilisateur)
  41. KeyboardInterrupt
  42. -----------------
  43. ``KeyboardInterrupt`` est levée quand on fait ``ctrl-c``.
  44. FileNotFoundError
  45. ------------------
  46. ``FileNotFoundError`` est levée quand on essaye d'ouvrir
  47. en lecture un fichier qui n'exsiste pas::
  48. with open("fichier-inexistant.txt", "r") as f:
  49. contenu = f.read()