Gestion des erreurs

Python intermédiaire pour les développeurs

Jasmin Ludolf

Senior Data Science Content Developer

Pandas traceback

Traceback showing code that intentionally returns an error

  • except, raise

  • Anticiper la manière dont des erreurs pourraient survenir

Python intermédiaire pour les développeurs

Pensée conceptuelle

  • Comment peut-on utiliser notre fonction personnalisée ?
  • Tester différentes approches
  • Identifier les erreurs qui pourraient survenir

Différents types de trajets domicile-travail en ville

Python intermédiaire pour les développeurs

Gestion des erreurs dans les fonctions personnalisées

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

Quels problèmes pourraient survenir ?

  • average() s'attend à une liste ou un ensemble
  • Fournir plusieurs arguments
  • Utiliser un type de données incorrect
Python intermédiaire pour les développeurs

Quels problèmes pourraient survenir ?

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

Traceback with TypeError

Python intermédiaire pour les développeurs

Gestion des erreurs précédentes

  • Flux de contrôle if, elif, else
  • Docstrings
Python intermédiaire pour les développeurs

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 les développeurs

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 les développeurs

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 les développeurs

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 les développeurs

Résultat raise TypeError

print(average(sales_dict))

TypeError output showing the custom message to provide the correct data type

Python intermédiaire pour les développeurs

try-except vs raise

try-except

  • Éviter les erreurs
  • Continue d’exécuter le code suivant

raise

  • Produira une erreur
  • Évite d'exécuter le code suivant
Python intermédiaire pour les développeurs

Passons à la pratique !

Python intermédiaire pour les développeurs

Preparing Video For Download...