Else et finally =============== else ---- Si on rajoute un bloc ``else`` après le ``except``, le bloc n'est éxécuté que si *aucune* exception n'a été levée:: try: tente_un_truc_risqué() except (ZeroDivisionError, FileNotFoundError): print("raté") else: print("ouf - ça a marché") finally -------- Si on rajoute un bloc ``finally`` après le ``except``, le bloc est éxécuté *dans tous les cas*, qu'une exception ait été levée ou non. On s'en sert souvent pour "annuler" du code qui aurait été utilisé dans le bloc ``try``:: personnage = Personnage() try: personnage.entre_en_scène() personnage.tente_un_truc_risqué() except ZeroDivisionError: print("raté") finally: personnage.quitte_la_scène() 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 à nouveau. TODO: exemple plus complet