Comment gérer les exceptions en python utilisant la clause finally

Normalement vous voulez gérer toute exception qui se produit d'une manière qui ne cause pas votre application Python crash. Cependant, parfois, vous ne pouvez pas faire quelque chose pour régler le problème, et la demande est très certainement va se planter.

Sommaire

À ce stade, votre objectif est d'entraîner l'application à planter gracieusement, ce qui signifie la fermeture de fichiers de telle sorte que l'utilisateur ne perd pas de données et d'effectuer d'autres tâches de cette nature. Tout ce que vous pouvez faire pour limiter les dégâts aux données et le système à un minimum est une partie essentielle de la gestion des données pour une application de fracas.

La Enfin article fait partie de la stratégie de plantage de l'application. Vous utilisez cette clause pour effectuer toutes les tâches requises de dernière minute. Normalement, la Enfin clause est assez courte et utilise uniquement les appels qui sont susceptibles de réussir sans autre problème.

Il est essentiel de fermer les fichiers, déconnecter l'utilisateur, et effectuer d'autres tâches requises, puis laisser le plantage de l'application avant que quelque chose de terrible se produit (comme une panne totale du système). Avec cette nécessité à l'esprit, les étapes suivantes montrent un exemple simple d'utilisation de la Enfin clause.

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:

systry d'importation: élever ValueErrorprint ("lever une exception.") à l'exception ValueError: print sys.exit () enfin ("ValueError Exception!"): print (". Prendre soin des détails de dernière minute") print ("Ce code ne sera jamais exécuter. ")

Dans cet exemple, le code soulève ValueError exception. La sauf clause exécute comme normale lorsque cela se produit. L'appel à la sys.exit () signifie que l'application quitte après l'exception est gérée. Peut-être que l'application ne peut pas récupérer dans ce cas particulier, mais l'application se termine normalement, ce qui explique pourquoi la finale impression() appel de fonction ne pourra jamais exécuter.

La Enfin Code de la clause exécute toujours. Il n'a pas d'importance si l'exception se produit ou non. Le code que vous placez dans ce bloc doit être code commun que vous voulez toujours exécuter. Par exemple, lorsque vous travaillez avec un fichier, vous placez le code de fermer le fichier dans ce bloc pour assurer que les données ne soit pas endommagé en restant dans la mémoire plutôt que d'aller sur le disque.

Comment gérer les exceptions en python utilisant la clause finally
Comment gérer les exceptions en python utilisant la clause finally Agrandir
3

Choisissez Module Run-Run.

Vous voyez une fenêtre ouverte Python. L'application affiche le sauf message de clause et le Enfin message de clause. La sys.exit () appel empêche tout autre code de l'exécution.

4

Commentaire sur l'appel de relance ValueError en le faisant précéder de deux signes dièse, comme ceci:

## générer ValueError

Retrait de l'exception va démontrer comment le Enfin clause fonctionne réellement.

5

Enregistrez le fichier sur le disque.

Cela garantit que Python voit le changement.

Comment gérer les exceptions en python utilisant la clause finally
Comment gérer les exceptions en python utilisant la clause finally Agrandir
6

Choisissez Module Run-Run.

Vous voyez une fenêtre ouverte Python. L'application affiche une série de messages, y compris la Enfin message de clause. Cette partie de l'exemple montre que le Enfin clause exécute toujours, si vous avez besoin de l'utiliser avec précaution.


» » » » Comment gérer les exceptions en python utilisant la clause finally