Gestion des erreurs

Python intermédiaire pour développeurs et développeuses

Jasmin Ludolf

Senior Data Science Content Developer

Traceback de pandas

Traceback montrant du code qui génère volontairement une erreur

  • except, raise

  • Tâchez d'anticiper comment des erreurs peuvent survenir

Python intermédiaire pour développeurs et développeuses

Conception axée sur l'usage

  • Comment nos fonctions personnalisées seront-elles utilisées ?
  • Tester différentes approches
  • Repérer les erreurs possibles

Différents modes de déplacement en ville

Python intermédiaire pour développeurs et développeuses

Gestion des erreurs dans des fonctions personnalisées

def average(values):
    # Calculate the average
    average_value = sum(values) / len(values)
    return average_value
Python intermédiaire pour développeurs et développeuses

Où peuvent-ils se tromper ?

  • average() attend une liste ou un ensemble
  • Fournir plus d'un argument 🛑
  • Utiliser un type non conforme 🛑
Python intermédiaire pour développeurs et développeuses

Où peuvent-ils se tromper ?

sales_dict = {"cust_id": ["JL93", "MT12", "IY64"],
              "order_value": [43.21, 68.70, 82.19]}
print(average(sales_dict))

Traceback avec TypeError

Python intermédiaire pour développeurs et développeuses

Gestion des erreurs vue plus tôt

  • Contrôle du flot if, elif, else
  • Docstrings
Python intermédiaire pour développeurs et développeuses

try-except

def average(values):

try:
# Code that might cause an error average_value = sum(values) / len(values) return average_value
except:
# Code to run if an error occurs print("average() accepts a list or set. Please provide a correct data type.")
Python intermédiaire pour développeurs et développeuses

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
Python intermédiaire pour développeurs et développeuses

raise

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise
Python intermédiaire pour développeurs et développeuses

raise TypeError

def average(values):
    # Check data type
    if type(values) in (list, set):

# Run if appropriate data type was used average_value = sum(values) / len(values) return average_value
else: # Run if an Exception occurs raise TypeError("average() accepts a list or set, please provide a correct data type.")
Python intermédiaire pour développeurs et développeuses

Sortie de raise TypeError

print(average(sales_dict))

Sortie TypeError affichant le message personnalisé demandant le bon type de données

Python intermédiaire pour développeurs et développeuses

try-except vs. raise

try-except

  • Évite de produire des erreurs
  • Permet d'exécuter le code suivant

raise

  • Produit volontairement une erreur
  • Empêche d'exécuter le code suivant
Python intermédiaire pour développeurs et développeuses

Passons à la pratique !

Python intermédiaire pour développeurs et développeuses

Preparing Video For Download...