Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
Den här utvecklingskatalogen är arkiverad. Du kan se filer och klona katalogen, men inte öppna ärenden eller genomföra push- eller pull-förfrågningar.
 
 
 
 
 
 

40 rader
1018 B

  1. Else et finally
  2. ===============
  3. else
  4. ----
  5. Si on rajoute un bloc ``else`` après le ``except``, le bloc n'est éxécuté que si
  6. *aucune* exception n'a été levée::
  7. try:
  8. tente_un_truc_risqué()
  9. except (ZeroDivisionError, FileNotFoundError):
  10. print("raté")
  11. else:
  12. print("ouf - ça a marché")
  13. finally
  14. --------
  15. Si on rajoute un bloc ``finally`` après le ``except``, le bloc est éxécuté *dans tous les cas*,
  16. qu'une exception ait été levée ou non. On s'en sert souvent pour "annuler" du code
  17. qui aurait été utilisé dans le bloc ``try``::
  18. personnage = Personnage()
  19. try:
  20. personnage.entre_en_scène()
  21. personnage.tente_un_truc_risqué()
  22. except ZeroDivisionError:
  23. print("raté")
  24. finally:
  25. personnage.quitte_la_scène()
  26. Si dans le bloc ``try`` une exception **différente** de ``ZeroDivisionError`` est
  27. levée, on passera *quand même* dans le bloc ``finally``, *puis* l'exception sera
  28. levée à nouveau.
  29. TODO: exemple plus complet