SlideShare une entreprise Scribd logo
14/01/2018
1
LES EXCEPTION ET LES
ASSERTIONS DANS LE LANGAGE
PYTHON
2017-2018
© Imene Sghaier
Octobre 2017
ISET Nabeul-Mastère SEM2
INTRODUCTION
 Une exception est une erreur résiduelle dans le
programme.
 Les exceptions sont les opérations qu’effectue un
interpréteur (ou un compilateur) lorsqu’une erreur est
détectée au cour de l’exécution d’un programme.
 Il est souvent possible d’anticiper certaines de ces
erreurs, et de les prévenir en incluant dans les
programmes un mécanisme de traitement des
exceptions.
 Python utilise les instructions try - except - [else] -
[finally] qui permettent d’intercepter une erreur et de
la traiter spécifiquement.
2
Imene Sghaier-Programmation Python
14/01/2018
2
GESTION DES EXCEPTION
 Le mécanisme est le suivant :
try : #Bloc d'instructions normales protégées, exécutées "sous réserve".
except [classe d'exception]: # Bloc de traitement des exceptions.
# Si une erreur survient pendant l’exécution du bloc try et qu'elle correspond
# à la classe d'exception, alors l'exécution se poursuit ici.
else : # Bloc de traitement si les instructions du try se sont bien déroulées.
finally : # Bloc de traitement exécuté dans tous les cas
(exception ou non).
3
Imene Sghaier-Programmation Python
GESTION DES EXCEPTION
 On pourra meme rattraper plusieurs classes d’exceptions
try:
bloc_dans_lequel_l’exception_a_lieu
except: NomException1
bloc_dans_lequel_on_rattrape_ l’exception1
except: NomException2
bloc_dans_lequel_on_rattrape_ l’exception2
except: NomExceptionN
bloc_dans_lequel_on_rattrape_ l’exceptionN
 On pourra faire le même traitement pour divers types
d’exception, pour cela on écrira except(Excep1, Excep2,…)
4
Imene Sghaier-Programmation Python
14/01/2018
3
GESTION DES EXCEPTIONS
 Python possède beaucoup d’exception prédéfinies:
 IndexError: Accès à un élément non existant
 NameError: Utilisation d’un objet non existant
 SyntaxError:Erreur de syntaxe dans une
instruction
 TypeError : erreur de type
 ZeroDivisionError:Division par zero
5
Imene Sghaier-Programmation Python
GESTION DES EXCEPTIONS
6
Imene Sghaier-Programmation Python
14/01/2018
4
GESTION DES EXCEPTIONS
 Une clause except sans aucune spécification
d’exception rattrapera toutes les exceptions.
 Attention en utilisant except sans la spécification
de type d’exception à rattrapper pourrait cacher
des erreurs résiduelles dans le programme.
 Exemple
7
Imene Sghaier-Programmation Python
GESTION DES EXCEPTIONS: LA CLAUSE FINALLY
 Pour s’assurer qu’un bout de code sera exécuté peu importe
quelle erreur aura lieu, on peut utiliser la clause finally.
 La clause finally est placée à la fin du bloc try/except.
 Le code mis au sein de la clause finally va être exécuté après
l’exécution du code du bloc try et celui des blocs except si des
erreurs auront lieu.
 Exemple
8
Imene Sghaier-Programmation Python
14/01/2018
5
GESTION DES EXCEPTIONS: LA CLAUSE FINALLY
 Le code au sein de la clause finally sera exécuté même si des
exception non rattrapées auront lieu.
9
Imene Sghaier-Programmation Python
GESTION DES EXCEPTIONS: LEVER DES EXCEPTIONS
 On peut lever des exception en utilisant le mot
clès raise exceptionName.
10
Imene Sghaier-Programmation Python
14/01/2018
6
GESTION DES EXCEPTIONS: LEVER DES EXCEPTIONS
 Les exceptions peuvent être levée avec des arguments
donnant des détails à propos de ces exceptions
11
Imene Sghaier-Programmation Python
GESTION DES EXCEPTIONS: LEVER DES EXCEPTIONS
 Dans les blocs except , la clause raise peut être utilisée sans
arguments pour relever n’importe quelle exception qui a eu
lieu.
12
Imene Sghaier-Programmation Python
14/01/2018
7
GESTION DES ASSERTIONS
 Une assertion est un test de saineté qui peut fonctionner ou
non quand vous avez fini de tester votre programme. Une
expression est testée et si le résultat est faux une exception
est levée. Les assertions sont créée via la clause assert
 Les programmeurs utilisent les assertions le plus souvent :
 Au début des fonctions pour vérifier si les arguments en entrée sont
valides ou non
 Après l’appel d’une fonction pour vérifier la validité des valeurs
retournées
13
Imene Sghaier-Programmation Python
GESTION DES ASSERTIONS
 Les exceptions de type AssertionError peuvent être ratrappées et
traitées comme n’importe quelle autre type d’exception en utilisant
le bloc try/except mais si elles ne sont pas traitées ce type
d’exceptions pourrait stopper l’exécution du programme.
14
Imene Sghaier-Programmation Python
14/01/2018
8
UTILISATION DE ELSE AVEC LES EXCEPTION
 La clause else peut etre utilisée avec un bloc
try/except. Dansle cas suivant le code sous la
clause else n’est exécuté que si aucune erreur n’a
eu lieu dans le bloc try.

15

Contenu connexe

Similaire à Python chapitre 5.pdf

plsql-8.ppt
plsql-8.pptplsql-8.ppt
plsql-8.ppt
Conferenceiwwsd
 
Les08.ppt
Les08.pptLes08.ppt
Les08.ppt
zidane39
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
IsenDev
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
Mohamed Akrouh
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon
Ippon
 
Java-3eme partie.pptx
Java-3eme partie.pptxJava-3eme partie.pptx
Java-3eme partie.pptx
HassanAbdel
 

Similaire à Python chapitre 5.pdf (6)

plsql-8.ppt
plsql-8.pptplsql-8.ppt
plsql-8.ppt
 
Les08.ppt
Les08.pptLes08.ppt
Les08.ppt
 
Test unitaire
Test unitaireTest unitaire
Test unitaire
 
Test unitaires
Test unitairesTest unitaires
Test unitaires
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon
 
Java-3eme partie.pptx
Java-3eme partie.pptxJava-3eme partie.pptx
Java-3eme partie.pptx
 

Plus de Institut Supérieur des Etudes Technologiques de Nabeul

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
chapitre 7 Android 2.pptx
chapitre 7 Android 2.pptxchapitre 7 Android 2.pptx
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
chapitre 5 Android 2.pptx
chapitre 5 Android 2.pptxchapitre 5 Android 2.pptx
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
Institut Supérieur des Etudes Technologiques de Nabeul
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
Institut Supérieur des Etudes Technologiques de Nabeul
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx
chap 5 POO Java.pptx
chap 5 POO Java.pptxchap 5 POO Java.pptx

Plus de Institut Supérieur des Etudes Technologiques de Nabeul (20)

Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
chapitre 8 Android 2.pptx
chapitre 8 Android 2.pptxchapitre 8 Android 2.pptx
chapitre 8 Android 2.pptx
 
chapitre 7 Android 2.pptx
chapitre 7 Android 2.pptxchapitre 7 Android 2.pptx
chapitre 7 Android 2.pptx
 
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
chapitre 6 Android 2.pptx
 
chapitre 5 Android 2.pptx
chapitre 5 Android 2.pptxchapitre 5 Android 2.pptx
chapitre 5 Android 2.pptx
 
chapitre 4 Android 2.pptx
chapitre 4 Android 2.pptxchapitre 4 Android 2.pptx
chapitre 4 Android 2.pptx
 
chapitre 3 Android 2.pptx
chapitre 3 Android 2.pptxchapitre 3 Android 2.pptx
chapitre 3 Android 2.pptx
 
chapitre 2 Android 2.pptx
chapitre 2 Android 2.pptxchapitre 2 Android 2.pptx
chapitre 2 Android 2.pptx
 
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chapitre 1 Android 2.pptx
 
Python chapitre 7.pdf
Python chapitre 7.pdfPython chapitre 7.pdf
Python chapitre 7.pdf
 
Python chapitre 6.pdf
Python chapitre 6.pdfPython chapitre 6.pdf
Python chapitre 6.pdf
 
Python chapitre 4.pdf
Python chapitre 4.pdfPython chapitre 4.pdf
Python chapitre 4.pdf
 
Python chapitre 2.pdf
Python chapitre 2.pdfPython chapitre 2.pdf
Python chapitre 2.pdf
 
Python chapitre 1.pdf
Python chapitre 1.pdfPython chapitre 1.pdf
Python chapitre 1.pdf
 
chap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdfchap 3 Technologies de communication.pdf
chap 3 Technologies de communication.pdf
 
Chap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdfChap 2 capteurs et IoT.pdf
Chap 2 capteurs et IoT.pdf
 
Introduction à l'IoT.pdf
Introduction à l'IoT.pdfIntroduction à l'IoT.pdf
Introduction à l'IoT.pdf
 
chap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptxchap 7 POO Java Les Exceptions.pptx
chap 7 POO Java Les Exceptions.pptx
 
Chap 6 POO Java.pptx
Chap 6 POO Java.pptxChap 6 POO Java.pptx
Chap 6 POO Java.pptx
 
chap 5 POO Java.pptx
chap 5 POO Java.pptxchap 5 POO Java.pptx
chap 5 POO Java.pptx
 

Dernier

JTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santéJTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santé
Institut de l'Elevage - Idele
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
Institut de l'Elevage - Idele
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdfRAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
fatima413951
 
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvresJTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
Institut de l'Elevage - Idele
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
Institut de l'Elevage - Idele
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Institut de l'Elevage - Idele
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Institut de l'Elevage - Idele
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
Institut de l'Elevage - Idele
 
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
Institut de l'Elevage - Idele
 

Dernier (10)

JTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santéJTC 2024 - Approche collective de la santé
JTC 2024 - Approche collective de la santé
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdfRAPPORT DE STAGE  sur CHANTIER  BTP (by BR Engineering ) (1) (1).pdf
RAPPORT DE STAGE sur CHANTIER BTP (by BR Engineering ) (1) (1).pdf
 
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvresJTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
JTC 2024 - Atelier APaChe-Pâturage des arbres par les chèvres
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
 
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
BeeBOP diaporama webinaire : Et si l’IA permettait de compléter l’observatio...
 

Python chapitre 5.pdf

  • 1. 14/01/2018 1 LES EXCEPTION ET LES ASSERTIONS DANS LE LANGAGE PYTHON 2017-2018 © Imene Sghaier Octobre 2017 ISET Nabeul-Mastère SEM2 INTRODUCTION  Une exception est une erreur résiduelle dans le programme.  Les exceptions sont les opérations qu’effectue un interpréteur (ou un compilateur) lorsqu’une erreur est détectée au cour de l’exécution d’un programme.  Il est souvent possible d’anticiper certaines de ces erreurs, et de les prévenir en incluant dans les programmes un mécanisme de traitement des exceptions.  Python utilise les instructions try - except - [else] - [finally] qui permettent d’intercepter une erreur et de la traiter spécifiquement. 2 Imene Sghaier-Programmation Python
  • 2. 14/01/2018 2 GESTION DES EXCEPTION  Le mécanisme est le suivant : try : #Bloc d'instructions normales protégées, exécutées "sous réserve". except [classe d'exception]: # Bloc de traitement des exceptions. # Si une erreur survient pendant l’exécution du bloc try et qu'elle correspond # à la classe d'exception, alors l'exécution se poursuit ici. else : # Bloc de traitement si les instructions du try se sont bien déroulées. finally : # Bloc de traitement exécuté dans tous les cas (exception ou non). 3 Imene Sghaier-Programmation Python GESTION DES EXCEPTION  On pourra meme rattraper plusieurs classes d’exceptions try: bloc_dans_lequel_l’exception_a_lieu except: NomException1 bloc_dans_lequel_on_rattrape_ l’exception1 except: NomException2 bloc_dans_lequel_on_rattrape_ l’exception2 except: NomExceptionN bloc_dans_lequel_on_rattrape_ l’exceptionN  On pourra faire le même traitement pour divers types d’exception, pour cela on écrira except(Excep1, Excep2,…) 4 Imene Sghaier-Programmation Python
  • 3. 14/01/2018 3 GESTION DES EXCEPTIONS  Python possède beaucoup d’exception prédéfinies:  IndexError: Accès à un élément non existant  NameError: Utilisation d’un objet non existant  SyntaxError:Erreur de syntaxe dans une instruction  TypeError : erreur de type  ZeroDivisionError:Division par zero 5 Imene Sghaier-Programmation Python GESTION DES EXCEPTIONS 6 Imene Sghaier-Programmation Python
  • 4. 14/01/2018 4 GESTION DES EXCEPTIONS  Une clause except sans aucune spécification d’exception rattrapera toutes les exceptions.  Attention en utilisant except sans la spécification de type d’exception à rattrapper pourrait cacher des erreurs résiduelles dans le programme.  Exemple 7 Imene Sghaier-Programmation Python GESTION DES EXCEPTIONS: LA CLAUSE FINALLY  Pour s’assurer qu’un bout de code sera exécuté peu importe quelle erreur aura lieu, on peut utiliser la clause finally.  La clause finally est placée à la fin du bloc try/except.  Le code mis au sein de la clause finally va être exécuté après l’exécution du code du bloc try et celui des blocs except si des erreurs auront lieu.  Exemple 8 Imene Sghaier-Programmation Python
  • 5. 14/01/2018 5 GESTION DES EXCEPTIONS: LA CLAUSE FINALLY  Le code au sein de la clause finally sera exécuté même si des exception non rattrapées auront lieu. 9 Imene Sghaier-Programmation Python GESTION DES EXCEPTIONS: LEVER DES EXCEPTIONS  On peut lever des exception en utilisant le mot clès raise exceptionName. 10 Imene Sghaier-Programmation Python
  • 6. 14/01/2018 6 GESTION DES EXCEPTIONS: LEVER DES EXCEPTIONS  Les exceptions peuvent être levée avec des arguments donnant des détails à propos de ces exceptions 11 Imene Sghaier-Programmation Python GESTION DES EXCEPTIONS: LEVER DES EXCEPTIONS  Dans les blocs except , la clause raise peut être utilisée sans arguments pour relever n’importe quelle exception qui a eu lieu. 12 Imene Sghaier-Programmation Python
  • 7. 14/01/2018 7 GESTION DES ASSERTIONS  Une assertion est un test de saineté qui peut fonctionner ou non quand vous avez fini de tester votre programme. Une expression est testée et si le résultat est faux une exception est levée. Les assertions sont créée via la clause assert  Les programmeurs utilisent les assertions le plus souvent :  Au début des fonctions pour vérifier si les arguments en entrée sont valides ou non  Après l’appel d’une fonction pour vérifier la validité des valeurs retournées 13 Imene Sghaier-Programmation Python GESTION DES ASSERTIONS  Les exceptions de type AssertionError peuvent être ratrappées et traitées comme n’importe quelle autre type d’exception en utilisant le bloc try/except mais si elles ne sont pas traitées ce type d’exceptions pourrait stopper l’exécution du programme. 14 Imene Sghaier-Programmation Python
  • 8. 14/01/2018 8 UTILISATION DE ELSE AVEC LES EXCEPTION  La clause else peut etre utilisée avec un bloc try/except. Dansle cas suivant le code sous la clause else n’est exécuté que si aucune erreur n’a eu lieu dans le bloc try.  15