0% ont trouvé ce document utile (0 vote)
26 vues13 pages

Gestion des erreurs et exceptions en Python

Transféré par

ehsamba.syll
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
26 vues13 pages

Gestion des erreurs et exceptions en Python

Transféré par

ehsamba.syll
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ERREUR ET EXCEPTION

• Un bug est un fonctionnement non désiré dans un ordinateur


ou un programme informatique.
• On parle de bug quand le logiciel ne fait pas ce qu'on lui a
demandé, qu'il se bloque et ne répond plus ou qu'il plante.
• De par la nature complexe de l'informatique, il est assez
fréquent que vous rencontriez des bugs !

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 1


ERREUR ET EXCEPTION

• Une exception est un objet


qui contient des
informations sur le contexte
de l'erreur ;

• Lorsqu'une exception
survient et qu'elle n'est pas
traitée alors elle produit
une interruption du
programme et elle affiche
sur la sortie standard un
message ainsi que la pile
des appels.

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 2


ERREUR ET EXCEPTION
• Les erreurs de syntaxe

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 3


ERREUR ET EXCEPTION
• Exception

Même si une instruction ou une expression est syntaxiquement correcte, elle peut
générer une erreur lors de son exécution.

Les erreurs détectées durant l'exécution sont appelées des exceptions et ne sont pas
toujours fatales : nous apprendrons bientôt comment les traiter dans nos programmes.

La plupart des exceptions toutefois ne sont pas prises en charge par les programmes, ce
qui génère des messages d'erreurs.

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 4


ERREUR ET EXCEPTION

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 5


ERREUR ET EXCEPTION
• Gestion des exceptions
Il est possible d'écrire des programmes qui prennent en charge certaines exceptions.

def test():
while True:
try:
x = int(input("Please enter a number: "))
break
except ValueError:
print("That was no valid number. Try again...")

if __name__ == '__main__':
test()

Une instruction try peut comporter plusieurs clauses except pour permettre la prise en charge de
différentes exceptions. Mais un seul gestionnaire, au plus, sera exécuté.
Vous trouvez la liste des exceptions natives et leur signification dans Exceptions natives

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 6


ERREUR ET EXCEPTION
• Gestion des exceptions
Les gestionnaires d'exceptions n'interceptent pas que les exceptions qui sont levées
immédiatement dans leur clause try, mais aussi celles qui sont levées au sein de fonctions
appelées (parfois indirectement) dans la clause try.

def this_fails():
x = 1/0

try:
this_fails()
except ZeroDivisionError as err:
print('Exception:', err)

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 7


ERREUR ET EXCEPTION
• Déclencheur des exceptions
L'instruction raise permet au programmeur de déclencher une exception spécifique.
Si vous avez besoin de savoir si une exception a été levée mais que vous n'avez pas l’intention de
la gérer, une forme plus simple de l'instruction raise permet de propager l'exception.

try:
raise NameError('HiThere')
except NameError:
print('An exception flew by!')
raise

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 8


ERREUR ET EXCEPTION
• Chainage d’exception
Si une exception non gérée se produit à l'intérieur d'une section except, l'exception en cours de
traitement est jointe à l'exception non gérée et incluse dans le message d'erreur.

try:
open("[Link]")
except OSError:
raise RuntimeError("Impossible de gérer l'erreur.")

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 9


ERREUR ET EXCEPTION
• Chainage d’exception
Pour indiquer qu'une exception est la conséquence directe d'une autre,
l'instruction raise autorise une clause facultative from.
def func():
raise ConnectionError

try:
func()
except ConnectionError as exc:
raise RuntimeError('Echec pour ouverture database') from exc

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 10


ERREUR ET EXCEPTION
• Action de nettoyage
L'instruction try a une autre clause optionnelle qui est destinée à définir des actions de nettoyage
devant être exécutées dans certaines circonstances.

def divide(x, y):


try:
result = x / y
except ZeroDivisionError:
print("Division par zéro!")
else:
print("Le résultat est :", result)
finally:
print("Exécution de la clause finally")

divide(2, 1)
divide(2, 0)
divide("2", "1")

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 11


ERREUR ET EXCEPTION
• Enrichissement des exceptions avec des notes
Quand une exception est créée pour être levée, elle est généralement initialisée avec des
informations décrivant l'erreur qui s'est produite. Il existe des cas où il est utile d'ajouter des
informations après que l'exception a été interceptée.
try:
raise TypeError('bad type')
except Exception as e:
e.add_note('Add some information')
e.add_note('Add some more information')
raise

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 12


ERREUR ET EXCEPTION
• Conception de classe d’exception

class MonErreurPersonnalisee(Exception):
"""Classe d'exception personnalisée."""
def __init__(self, message):
[Link] = message
super().__init__([Link])

try:
raise MonErreurPersonnalisee("Ceci est un message d'erreur
personnalisé.")
except MonErreurPersonnalisee as e:
print(f"Erreur personnalisée attrapée : {e}")
finally:
print("Code dans la clause finally.")

Python, POO2, LGI3 - M. DIOUF (UIDT) 03/01/2025 13

Vous aimerez peut-être aussi