17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

144<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

try..finally<br />

>>> try:<br />

... print(2 / 0)<br />

... except ZeroDivisionError, error:<br />

... print('Erreur: %s' % str(error))<br />

...<br />

Erreur: integer division or modulo by zero<br />

Enfin, un bloc else peut être ajouté à la fin du bloc try..except, et ne sera exécuté<br />

que s’il n’y a eu aucune erreur.<br />

La directive try..finally permet de s’assurer qu’un bloc de code est toujours<br />

exécuté : le bloc contenu dans la directive try peut lever une exception, ou même<br />

exécuter une directive return ou break, le bloc finally sera toujours exécuté.<br />

Lecture d’un fichier<br />

>>> with open('zipfile.py', 'w') as file_<br />

... try:<br />

... some_code()<br />

... finally:<br />

... file_.write('fini')<br />

...<br />

Dans cet exemple, la directive finally permet de s’assurer que le mot « fini » sera<br />

écrit dans le fichier, quoi qu’il advienne dans some_code().<br />

À RETENIR Débogage d’un programme Python<br />

Pour déboguer un programme Python, il convient d’utiliser le module pdb, présenté au chapitre 9.<br />

try..except..finally<br />

Pour simplifier le code, il est aussi possible d’unifier les directives except et finally<br />

imbriquées depuis Python 2.5.1.<br />

Unification<br />

>>> try: # avant 2.5.1<br />

... try:<br />

... print('le code')<br />

... except:<br />

... print("l'erreur")

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!