Gestion des Erreurs d'Entrée
\( \text{entrée} \xrightarrow{\text{validation}} \text{données} \xrightarrow{\text{traitement}} \text{résultat} \)
Processus de validation
Types d'erreurs :
Erreurs de type (str vs int)
Erreurs de valeur (division par zéro)
Erreurs de format (date invalide)
Erreurs de plage (hors limites)
Erreurs de valeur (division par zéro)
Erreurs de format (date invalide)
Erreurs de plage (hors limites)
Définition :
Ensemble de techniques pour traiter les erreurs pouvant survenir lors de l'entrée de données
Méthodes de Gestion
try/except - Gestion des exceptions
Validation avant traitement
Boucle de saisie avec vérification
isinstance() - Vérification du type
assert - Contrôle des conditions
Types d'Exceptions
ValueError - Type incorrect
TypeError - Opération impossible
IndexError - Hors limites
Méthodes & Conseils
Toujours valider les entrées utilisateur
Utiliser try/except pour gérer les exceptions
Fournir des messages d'erreur clairs
Spécifier les types attendus
Demander une nouvelle saisie en cas d'erreur
Code Exemple
# Gestion des erreurs avec try/except
try:
nombre = int(input("Entrez un nombre: "))
resultat = 10 / nombre
except ValueError:
print("Veuillez entrer un nombre valide")
except ZeroDivisionError:
print("Division par zéro impossible")
# Validation avec boucle
while True:
entree = input("Entrez un nombre entre 1 et 10: ")
if entree.isdigit():
nombre = int(entree)
if 1 <= nombre <= 10:
break
print("Valeur invalide, réessayez")
Bonnes Pratiques
Validation précoce : Vérifier les entrées dès leur réception
Messages clairs : Informer l'utilisateur de la nature de l'erreur
Réessai autorisé : Permettre à l'utilisateur de corriger
Sécurité : Protéger contre les entrées malveillantes
Scénarios Typiques
Cas fréquents :
Saisie de nombres entiers/flottants
Entrée de dates valides
Sélection dans des listes prédéfinies
Entrée de chaines respectant un format
Entrée de dates valides
Sélection dans des listes prédéfinies
Entrée de chaines respectant un format
Méthodes de validation :
isdigit(), isalpha(), isalnum()
Expressions régulières (regex)
isinstance() pour le type
Assertions pour les conditions
Expressions régulières (regex)
isinstance() pour le type
Assertions pour les conditions