@@ -128,8 +128,8 @@ moins un argument appelé `self`, et être à l'intérieur du bloc de la classe: | |||||
def ma_méthode(self): | def ma_méthode(self): | ||||
return 42 | return 42 | ||||
Notez que les méthodes *sont aussi des attributs*. Leur valeur est une *fonction* qui prend | |||||
en argument l'instance courante. | |||||
Notez que les méthodes *sont aussi des attributs*. Leur valeur est une *fonction* | |||||
qui se comporte légèrement différemment des fonctions qu'on a vu jusqu'ici. | |||||
Méthodes - appel | Méthodes - appel | ||||
---------------- | ---------------- | ||||
@@ -39,6 +39,7 @@ dans quel ordre. Elle se lit de haut en bas: | |||||
* `mauvaise_fonction()` a levé une exception | * `mauvaise_fonction()` a levé une exception | ||||
Notez que chaque élément de la pile comprend: | Notez que chaque élément de la pile comprend: | ||||
* le nom de la fonction | * le nom de la fonction | ||||
* le chemin du module la contetant | * le chemin du module la contetant | ||||
* le numéro et la ligne précise du code qui a été appelé | * le numéro et la ligne précise du code qui a été appelé | ||||
@@ -11,9 +11,9 @@ On peut *gérer* (ou *attraper*) une exception en utilisant un bloc | |||||
try: | try: | ||||
a = 1 / 0 | a = 1 / 0 | ||||
except ZeroDivisionError: | except ZeroDivisionError: | ||||
print("Ouelqu'un a essayé de diviser par zéro!") | |||||
print("Quelqu'un a essayé de diviser par zéro!") | |||||
# Affiche: Ouelqu'un a essayé de diviser par zéro! | |||||
# Affiche: Quelqu'un a essayé de diviser par zéro! | |||||
À noter : le bloc dans ``try`` s'interrompt dès que l'exception est levée, | À noter : le bloc dans ``try`` s'interrompt dès que l'exception est levée, | ||||
et on ne passe dans le bloc ``except`` que si une exception a effectivement | et on ne passe dans le bloc ``except`` que si une exception a effectivement | ||||
@@ -92,7 +92,7 @@ Accéder à la valeur de l'exception | |||||
On peut récupérer l'instance de l'exception levée avec le mot-clé ``as``:: | On peut récupérer l'instance de l'exception levée avec le mot-clé ``as``:: | ||||
try: | try: | ||||
ounver_fichier() | |||||
ouvrir_fichier() | |||||
except FileNotFoundError as e: | except FileNotFoundError as e: | ||||
print("le fichier: ", e.filename, "n'existe pa") | print("le fichier: ", e.filename, "n'existe pa") | ||||
@@ -35,6 +35,6 @@ Dans ce cas, on utilise ``raise`` sans argument:: | |||||
try: | try: | ||||
tente_un_truc_risqué() | tente_un_truc_risqué() | ||||
exeept ArithmeticError: | |||||
except ArithmeticError: | |||||
... | ... | ||||
raise | raise |
@@ -35,3 +35,5 @@ qui aurait été utilisé dans le bloc ``try``:: | |||||
Si dans le bloc ``try`` une exception **différente** de ``ZeroDivisionError`` est | Si dans le bloc ``try`` une exception **différente** de ``ZeroDivisionError`` est | ||||
levée, on passera *quand même* dans le bloc ``finally``, *puis* l'exception sera | levée, on passera *quand même* dans le bloc ``finally``, *puis* l'exception sera | ||||
levée à nouveau. | levée à nouveau. | ||||
TODO: exemple plus complet |