| @@ -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 | |||||