Exceptions

Python ↔ Baobab
14 correspondances

essayer/attraper/enfin traduisent try/except/finally, lever traduit raise. Les erreurs standard portent des noms français : ErreurValeur pour ValueError, etc.

PythonBaobabDescription
try:essayer:Bloc surveillé.
except ValueError as e:attraper ErreurValeur comme e:Attrape un type d'erreur précis.
except Exception:attraper Erreur:Attrape toute erreur.
finally:enfin:Toujours exécuté, erreur ou pas.
raise ValueError("msg")lever ErreurValeur("msg")Déclenche une erreur volontairement.
ValueErrorErreurValeurValeur invalide (ex. entier("abc")).
TypeErrorErreurTypeOpération sur un type incompatible.
IndexErrorErreurIndiceIndice hors des bornes d'une séquence.
KeyErrorErreurCleClé absente d'un dictionnaire.
ZeroDivisionErrorErreurDivisionZeroDivision par zéro.
FileNotFoundErrorErreurFichierIntrouvableFichier inexistant à l'ouverture.
NameErrorErreurNomNom jamais défini (souvent une faute de frappe).
AttributeErrorErreurAttributAttribut ou méthode inexistant sur l'objet.
class MonErreur(Exception):classe MonErreur(Erreur):Erreur personnalisée par héritage.
Exemple complet - Baobab ↔ Python
Baobab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
fonction diviser(a, b): si b == 0: lever ErreurValeur("b ne peut pas être zéro") retourner a / b essayer: afficher(diviser(10, 2)) # → 5.0 afficher(diviser(1, 0)) # lève l'erreur attraper ErreurValeur comme e: afficher(f"Problème : {e}") attraper Erreur: afficher("Autre erreur inattendue") enfin: afficher("Calcul terminé") # toujours exécuté essayer: notes = {"maths": 15} afficher(notes["chimie"]) attraper ErreurCle: afficher("Matière inconnue")
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def diviser(a, b): if b == 0: raise ValueError("b ne peut pas être zéro") return a / b try: print(diviser(10, 2)) # → 5.0 print(diviser(1, 0)) # raises the error except ValueError as e: print(f"Problème : {e}") except Exception: print("Autre erreur inattendue") finally: print("Calcul terminé") # always executed try: notes = {"maths": 15} print(notes["chimie"]) except KeyError: print("Matière inconnue")