Gérer plusieurs exceptions
Fait partie de la section Logic & Flow du Journey Python de Coddy — leçon 65 sur 78.
En Python, nous pouvons gérer différents types d'exceptions dans des blocs except distincts. Cela nous permet de répondre différemment en fonction de l'erreur spécifique qui se produit.
Commencez par une structure try-except de base :
try:
# Code qui pourrait lever des exceptions
pass
except Exception as e:
# Gérer n'importe quelle exception
passPour gérer plusieurs exceptions, ajoutez des blocs except spécifiques :
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Vous pouvez également intercepter plusieurs types d'exceptions dans un seul bloc except :
try:
# Un certain code
pass
except (ValueError, TypeError):
print("Invalid input type!")L'ordre des blocs except est important - placez toujours les exceptions les plus spécifiques avant les plus générales.
Défi
FacileCréez une fonction appelée process_data qui :
- Prend en entrée une chaîne de caractères représentant des données potentielles
- Tente de la convertir en un entier, puis calcule 100 divisé par cet entier
- Retourne le résultat
- Gère au moins 3 exceptions possibles :
ValueErrorsi l'entrée ne peut pas être convertie en un entier (affiche "Input must be a number!")ZeroDivisionErrorsi l'entrée est 0 (affiche "Cannot divide by zero!")- Toute autre exception avec un gestionnaire générique (affiche "An unexpected error occurred!")
Aide-mémoire
Gérez différents types d'exceptions en utilisant plusieurs blocs except :
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Capturez plusieurs types d'exceptions dans un seul bloc except :
try:
# Du code
pass
except (ValueError, TypeError):
print("Invalid input type!")Placez toujours les exceptions plus spécifiques avant les plus générales dans l'ordre des blocs except.
Essayez vous-même
def process_data(input_string):
try:
# Tenter de convertir la chaîne d'entrée en un entier
# Calculer 100 divisé par la valeur d'entrée
# Retourner le résultat
except ValueError:
# Gérer le cas où l'entrée ne peut pas être convertie en un entier
except ZeroDivisionError:
# Gérer le cas où l'entrée est zéro
except:
# Gérer toutes les autres exceptions inattendues
return NoneCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logic & Flow
1Exploration des variables
ConstantesAffectations multiplesÉchange de variablesVariables de substitutionArrondir des nombresCasting de listes4Application de carnet de contacts
Afficher le menuAjouter un contact7Ensembles Partie 2
Opérations mathématiques Partie 1Opérations mathématiques Partie 2Récapitulatif - Chasse au trésorSous-ensembles et sur-ensemblesItérer sur les ensemblesRécapitulatif - Suivi de tournoi10Compréhensions de listes basiques
La syntaxeCréer des listes simplesAjouter des conditionsUtiliser l'agrégation de donnéesRécapitulatif - House Of ListsRécapitulatif - Elements Of Freedom13Système de gestion des stocks
Présentation du projetAjouter un article2Les dictionnaires - Partie 1
Qu'est-ce qu'un dictionnaire ?Créer un dictionnaireAccéder aux valeursModifier des dictionnairesRécapitulatif - Gestionnaire de recettes5Prise de décision avancée
Opérateur ternaireVérifications d'appartenanceVérifications d'identitéErreurs d'indentationRécapitulatif - Filtre de vacances8Gestionnaire de dossiers étudiants
Présentation du projetAjouter un étudiant11Fonctions avancées
Retourner plusieurs valeursFonctions Lambda - Partie 1Fonctions Lambda - Partie 2Défi récapitulatif - Tri LambdaFonctions récursives - Partie 1Fonctions récursives - Partie 2Récapitulatif - Somme d'une liste imbriquée14Fonctions d'ordre supérieur
La fonction MapLa fonction FilterRécapitulatif - Validateur d'e-mailsRécapitulatif - Processeur de nombres3Dictionnaires - Partie 2
Méthodes de dictionnaireDictionnaires imbriquésVérification des clésParcourir les dictionnairesRécapitulatif - Compteur de fréquence6Les Ensembles - Partie 1
Qu'est-ce qu'un ensemble ?Opérations de baseMéthodes des ensemblesRécapitulatif - Supprimer les doublons9Agrégation de données avancée
Utilisation de SumTrouver le minimum et le maximumTrier les données efficacementRécapitulatif - Trieur de dictionnaires12Gestion d'erreurs de base
Qu'est-ce que la gestion d'erreurs ?Le bloc Try and ExceptGérer plusieurs exceptionsRécapitulatif - Erreurs de panier d'achat