Applez Nous: +41 22 518 70 00
Une erreur de syntaxe (SyntaxError) empêche l’interpréteur de démarrer car le code viole la grammaire formelle du langage. Une exception d’exécution survient au contraire pendant le déroulement d’un programme syntaxiquement valide : fichier introuvable (FileNotFoundError), division impossible (ZeroDivisionError), ou type inadapté (TypeError).
Python fournit un mécanisme structuré d’interception d’exceptions permettant de rattraper les anomalies sans crasher le système :
def lire_donnees_fichier(chemin: str) -> str:
fichier = None
try:
fichier = open(chemin, "r", encoding="utf-8")
contenu = fichier.read()
except FileNotFoundError as err:
print(f"Erreur d'accès : le fichier {chemin} n'existe pas.")
return ""
except PermissionError:
print("Erreur de droits : lecture interdite sur ce fichier.")
return ""
else:
# Exécuté uniquement si aucune exception n'a été levée
print("Lecture achevée avec plein succès.")
return contenu
finally:
# Exécuté systématiquement, idéal pour libérer les ressources
if fichier and not fichier.closed:
fichier.close()
Dans un projet d’envergure, hériter de la classe de base Exception permet de créer des erreurs métiers explicites facilitant le diagnostic des pannes et l’auditabilité du système.
Synthèse pédagogique : Ne masquez jamais une erreur par un bloc
except Exception: passsilencieux. Une panne non signalée est une anomalie critique différée.