Numérique et Sciences Informatiques • 1ère

Gestion des erreurs d'entrée

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)
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
Méthodes de validation :
isdigit(), isalpha(), isalnum()
Expressions régulières (regex)
isinstance() pour le type
Assertions pour les conditions
Entrées/Sorties et interaction Algorithmique et programmation