Comment Utiliser au Mieux Try Sauf en Python – En particulier pour les débutants
En programmation Python, la gestion des exceptions permet à un programmeur d’activer le contrôle de flux. Et il n’en a pas. des exceptions intégrées pour détecter les erreurs au cas où votre code se casse. L’utilisation de try-except est le moyen le plus courant et le plus naturel de gérer les erreurs inattendues, ainsi que de nombreuses autres constructions de gestion des exceptions. Dans ce tutoriel, vous explorerez certaines des meilleures techniques à utiliser – sauf en Python.
La gestion des erreurs ou des exceptions en Python peut être appliquée en configurant des exceptions. À l’aide d’un bloc try, vous pouvez implémenter une exception et gérer l’erreur dans un bloc except. Chaque fois que le code se casse à l’intérieur d’un bloc try, le flux de code normal s’arrête et le contrôle passe au bloc except pour gérer l’erreur.
Lisez également – Apprenez la Gestion des exceptions Python à partir de Zéro.
Pourquoi utiliser la clause Try-Except/Try-Except-else ? Avec l’aide de try-except et try-except-else, vous pouvez éviter de nombreux problèmes inconnus qui pourraient survenir de votre code. Par exemple, le code Python utilisant le style LBYL (Regardez avant de sauter) peut entraîner des conditions de course. Ici, la clause try-except peut venir vous sauver. En outre, il existe des cas où votre code dépend de manière critique de certaines informations qui pourraient devenir obsolètes jusqu’au moment où vous les recevez. Par exemple, le code appelant le système d’exploitation.chemin.existe ou File d’attente.full peut échouer car ces fonctions peuvent renvoyer des données qui deviennent périmées au moment où vous les utilisez. Le choix le plus sage ici serait de suivre le style try-except-else dans votre code pour gérer les cas ci-dessus de manière plus fiable.
Le déclenchement d’exceptions est également autorisé en Python. Cela signifie que vous pouvez lancer ou lever une exception chaque fois que cela est nécessaire. Vous pouvez le faire simplement en appelant à partir de votre code. Une fois levée, l’exception arrêtera l’exécution en cours comme d’habitude et ira plus loin dans la pile d’appels jusqu’à ce qu’elle soit gérée.
Pourquoi utiliser des exceptions ? Ils aident non seulement à résoudre des problèmes populaires tels que les conditions de course, mais sont également très utiles pour contrôler les erreurs dans des domaines tels que les boucles, la gestion de fichiers, la communication de bases de données, l’accès au réseau, etc.
Par conséquent, nous aborderons des problèmes plus larges et fournirons des solutions dans cet article. Veuillez noter que la gestion des exceptions est un art qui vous apporte d’immenses pouvoirs pour écrire du code robuste et de qualité. Alors, préparez-vous à lire quelques notes sur les exceptions ainsi que les meilleures façons de les gérer.
Doit Lire – Tout Ce Que Vous Devez Savoir Sur Le Fichier De Copie Python.
Python: Conseils pour utiliser Try-Except, Try-Except-Else, et plus encore
- Comment Utiliser au mieux Try-Sauf en Python
- Comment gérer une exception arbitraire
- Attraper plusieurs exceptions dans un bloc except
- Gérer plusieurs exceptions avec un bloc except
- Relancer les exceptions en Python
- Quand utiliser la clause else
- Utiliser
- Utilisez le mot-clé As pour attraper des types d’exception spécifiques
- Meilleure pratique pour lever manuellement exceptions
- Comment ignorer les erreurs et continuer l’exécution
- Erreurs d’exception les plus courantes en Python
- Exemples d’exceptions les plus courantes en Python
1. Comment gérer une exception arbitraire
Parfois, vous aurez peut-être besoin d’un moyen d’autoriser toute exception arbitraire et de pouvoir afficher le message d’erreur ou d’exception.
Il est facilement réalisable en utilisant les exceptions Python. Vérifiez le code ci-dessous. Lors du test, vous pouvez placer le code dans le bloc try dans l’exemple ci-dessous.
try: #your codeexcept Exception as ex: print(ex)
Haut de page
2. Capture de plusieurs exceptions dans un bloc except
Vous pouvez capturer plusieurs exceptions dans un seul bloc except. Voir l’exemple ci-dessous.
except (Exception1, Exception2) as e: pass
Veuillez noter que vous pouvez séparer les exceptions de la variable avec une virgule qui est applicable en Python 2.6/2.7. Mais vous ne pouvez pas le faire en Python 3. Donc, vous devriez préférer utiliser le mot-clé.
Haut de page
3. Gestion de plusieurs exceptions avec un seul bloc except
Il existe de nombreuses façons de gérer plusieurs exceptions. La première d’entre elles nécessite de placer toutes les exceptions susceptibles de se produire sous la forme d’un tuple. Veuillez voir ci-dessous.
try: file = open('input-file', 'open mode')except (IOError, EOFError) as e: print("Testing multiple exceptions. {}".format(e.args))
La méthode suivante consiste à gérer chaque exception dans un bloc except dédié. Vous pouvez ajouter autant de blocs sauf que nécessaire. Voir l’exemple ci-dessous.
try: file = open('input-file', 'open mode')except EOFError as ex: print("Caught the EOF error.") raise exexcept IOError as e: print("Caught the I/O error.") raise ex
Le dernier mais non le moindre est d’utiliser le except sans mentionner d’attribut exception.
try: file = open('input-file', 'open mode')except: # In case of any unhandled error, throw it away raise
Cette méthode peut être utile si vous n’avez aucune idée de l’exception éventuellement levée par votre programme.
Haut de page
4. Ré-augmenter les exceptions en Python
Les exceptions une fois levées continuent de progresser vers les méthodes appelantes jusqu’à ce qu’elles soient gérées. Bien que vous puissiez ajouter une clause except qui pourrait simplement avoir un appel sans aucun argument. Cela se traduira par une relocalisation de l’exception.
Voir l’exemple de code ci-dessous.
try: # Intentionally raise an exception. raise Exception('I learn Python!')except: print("Entered in except.") # Re-raise the exception. raise
Sortie:
Entered in except.Traceback (most recent call last): File "python", line 3, in <module>Exception: I learn Python!
Haut de page
5. Quand utiliser la clause else
Utilisez une clause else juste après le bloc try-except. La clause else ne sera touchée que si aucune exception n’est levée. L’instruction else doit toujours précéder les blocs except.
Dans les blocs else, vous pouvez ajouter du code que vous souhaitez exécuter lorsqu’aucune erreur ne s’est produite.
Voir l’exemple ci-dessous. Dans cet exemple, vous pouvez voir une boucle while s’exécuter à l’infini. Le code demande une entrée utilisateur, puis l’analyse à l’aide de la fonction intégrée. Si l’utilisateur entre une valeur nulle, le bloc except sera touché. Sinon, le code passera par le bloc else.
while True: # Enter integer value from the console. x = int(input()) # Divide 1 by x to test error cases try: result = 1 / x except: print("Error case") exit(0) else: print("Pass case") exit(1)
Haut de page
6. Utilisez
Si vous avez un code que vous souhaitez exécuter dans toutes les situations, écrivez-le à l’intérieur du. Python exécutera toujours les instructions codées dans le. C’est la façon la plus courante de faire des tâches de nettoyage. Vous pouvez également vous assurer que le nettoyage passe.
Une erreur est détectée par la clause try. Une fois le code du bloc except exécuté, les instructions du bloc s’exécuteraient.
Veuillez noter que a sera TOUJOURS exécuté, même si vous l’avez devancé.
Voir l’exemple ci-dessous.
try: # Intentionally raise an error. x = 1 / 0except: # Except clause: print("Error occurred")finally: # Finally clause: print("The is hit")
Sortie:
Error occurredThe is hit
Haut de page
7. Utilisez le mot-clé As pour attraper des types d’exception spécifiques
À l’aide de l’identifiant as<>, vous pouvez créer un nouvel objet. Et vous pouvez également l’objet exception. Ici, dans l’exemple ci-dessous, nous créons l’objet IOError puis l’utilisons dans la clause.
try: # Intentionally raise an error. f = open("no-file")except IOError as err: # Creating IOError instance for book keeping. print("Error:", err) print("Code:", err.errno)
Sortie:
('Error:', IOError(2, 'No such file or directory'))('Code:', 2)
Haut de page
8. Meilleure pratique pour lever manuellement des exceptions
Évitez de déclencher des exceptions génériques car si vous le faites, toutes les autres exceptions plus spécifiques doivent également être interceptées. Par conséquent, la meilleure pratique consiste à soulever l’exception la plus spécifique proche de votre problème.
Mauvais exemple.
def bad_exception(): try: raise ValueError('Intentional - do not want this to get caught') raise Exception('Exception to be handled') except Exception as error: print('Inside the except block: ' + repr(error)) bad_exception()
Sortie:
Inside the except block: ValueError('Intentional - do not want this to get caught',)
Meilleure pratique:
Ici, nous levons un type d’exception spécifique, pas générique. Et nous utilisons également l’option args pour imprimer les arguments incorrects s’il y en a. Voyons l’exemple ci-dessous.
try: raise ValueError('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four') except ValueError as err: print(err.args)
Sortie:
('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four')
Haut de page
9. Comment ignorer les erreurs et continuer l’exécution
Idéalement, vous ne devriez pas le faire. Mais si vous voulez toujours le faire, suivez le code ci-dessous pour trouver la bonne approche.
try: assert Falseexcept AssertionError: passprint('Welcome to Prometheus!!!')
Sortie:
Welcome to Prometheus!!!
Retour en haut de page
Maintenant, jetez un coup d’œil à certaines des exceptions Python les plus courantes et à leurs exemples.
Erreurs d’exception les plus courantes
- IOError – Cela se produit lors d’erreurs telles qu’un fichier ne s’ouvre pas.
- ImportError – Si un module python ne peut pas être chargé ou localisé.
- ValueError – Cela se produit si une fonction obtient un argument de type correct mais une valeur inappropriée.
- KeyboardInterrupt – Il est touché lorsque l’utilisateur entre la touche d’interruption (c’est-à–dire la touche Control-C ou Del)
- EOFError – Il est déclenché si les fonctions d’entrée (input() / raw_input()) atteignent une condition de fin de fichier (EOF) mais sans lire aucune donnée.
Haut de page
Exemples d’exceptions les plus courantes
except IOError:print('Error occurred while opening the file.')except ValueError:print('Non-numeric input detected.')except ImportError:print('Unable to locate the module.')except EOFError:print('Identified EOF error.')except KeyboardInterrupt:print('Wrong keyboard input.')except:print('An error occurred.')
Haut de page
Résumé – Comment utiliser au mieux Try – Sauf en Python
Lors de la programmation, des erreurs sont inévitables. C’est un fait que personne ne peut ignorer. Et il pourrait y avoir de nombreuses raisons pour les erreurs comme une mauvaise entrée utilisateur, une autorisation de fichier insuffisante, l’indisponibilité d’une ressource réseau, une mémoire insuffisante ou très probablement l’erreur du programmeur.
De toute façon, tout cela peut être géré si votre code utilise la gestion des exceptions et l’implémente avec des constructions comme try-except, ou tr-except-else, try-except-finally. J’espère que vous auriez aimé lire le tutoriel ci-dessus.
Si vous avez aimé le post, ne manquez pas de le partager avec vos amis et sur les réseaux sociaux (facebook / twitter).
Meilleur,
TechBeamers.