Comment gérer plus spécifique aux exceptions moins spécifiques en python

Une stratégie pour la gestion des exceptions en Python est de fournir spécifique sauf clauses pour toutes les exceptions connues et générique sauf clauses pour gérer les exceptions inconnus. Vérifiez la hiérarchie d'exception qui utilise Python. Lorsque vous affichez ce tableau, BaseException l'exception est la plus haute. La plupart des exceptions sont dérivées de Exception. Lorsque vous travaillez à travers les erreurs de calcul, vous pouvez utiliser le générique ArithmeticError ou plus spécifique ZeroDivisionerror exception.

Évalue Python sauf clauses dans l'ordre dans lequel ils apparaissent dans le fichier de code source. La première clause est d'abord examiné, la deuxième clause est examiné le deuxième, et ainsi de suite. Les étapes suivantes vous aider à examiner un exemple qui illustre l'importance de l'utilisation de l'ordre de l'exception correcte. Dans ce cas, vous effectuez des tâches qui résultent des erreurs de mathématiques.

  1. Ouvrez une fenêtre Python Fichier.

    Vous voyez un éditeur dans lequel vous pouvez taper le code d'exemple.

  2. Tapez le code suivant dans la fenêtre - en appuyant sur ENTRÉE après chaque ligne:

    essayez: Valeur1 = int (entrée ("Tapez le premier numéro:")) Value2 = int (entrée ("Tapez le deuxième numéro:")) Sortie = Valeur1 / Value2except ValueError: print ("Vous devez saisir un nombre entier!" ) sauf KeyboardInterrupt: print ("Vous avez appuyé sur les touches Ctrl + C!"), sauf ArithmeticError: print ("Une erreur de calcul définie produite."), sauf ZeroDivisionerror: print ("Tentative de division par zéro!") else: print (Sortie)

    Le code commence par l'obtention de deux entrées: Valeur1 et Value2. Les deux premiers sauf clauses gèrent l'entrée inattendue. Le deuxième de deux sauf clauses gérer les exceptions mathématiques, comme la division par zéro. Si tout se passe bien avec la demande, le autre exécute clause, qui imprime le résultat de l'opération.

  3. Choisissez Module Run-Run.




    Vous voyez une fenêtre ouverte Python. L'application vous demande d'entrer le premier numéro.

  4. Tapez Bonjour et appuyez sur Entrée.

    Comme prévu, Python affiche le ValueError message d'exception. Cependant, il paie toujours pour vérifier les problèmes potentiels.

  5. Choisissez nouveau Module Run-Run.

    Vous voyez une fenêtre ouverte Python. L'application vous demande d'entrer le premier numéro.

  6. Type 8 et appuyez sur Entrée.

    L'application vous demande d'entrer le deuxième numéro.

  7. Tapez 0 et appuyez sur Entrée.

    Vous voyez le message d'erreur pour le ArithmeticError exception. Ce que vous devez vraiment voir est le ZeroDivisionerror exception car il est plus spécifique que le ArithmeticError exception.

    image0.jpg
  8. Inverser l'ordre des deux exceptions afin qu'ils ressemblent à ceci:

    sauf ZeroDivisionerror: print ("Tentative de division par zéro!"), sauf ArithmeticError: print ("Une erreur de calcul définie produite.")
  9. Effectuer les étapes 5 à 7 fois.

    Cette fois, vous voyez le ZeroDivisionerror message d'exception parce que les exceptions apparaissent dans le bon ordre.

  10. Effectuer les étapes 5 à 7 fois, mais de type 2 pour le deuxième numéro au lieu de 0.

    Cette fois, l'application signale enfin une valeur de sortie de 4.0.

    image1.jpg

    Notez que la sortie est une valeur à virgule flottante. Les résultats de la division en une valeur à virgule flottante, sauf si vous spécifiez que vous voulez une sortie entier en utilisant l'opérateur de division de-chaussée (//).


» » » » Comment gérer plus spécifique aux exceptions moins spécifiques en python