Pas spécifique à Python ceci.
Le but des exceptions est de traiter le problème aussi près que possible de son origine.
Vous gardez donc le code qui pourrait dans des circonstances exceptionnelles déclencher le problème et la résolution "à côté" l'un de l'autre.
Le fait est que vous ne pouvez pas connaître toutes les exceptions qui pourraient être levées par un morceau de code. Tout ce que vous pouvez savoir, c'est que s'il s'agit d'une exception, par exemple un fichier non trouvé, vous pouvez la piéger et inviter l'utilisateur à en obtenir une qui exécute ou annuler la fonction.
Si vous mettez try catch round that, quel que soit le problème qu'il y avait dans votre routine de fichiers (lecture seule, autorisations, UAC, pas vraiment un pdf, etc.), tout le monde tombera dans votre fichier non trouvé catch, et votre utilisateur crie "mais il est là, ce code est de la merde"
Maintenant, il y a quelques situations où vous pourriez tout attraper, mais elles devraient être choisies consciemment.
Ils sont catch, annulez une action locale (comme créer ou verrouiller une ressource, (ouvrir un fichier sur le disque pour écrire par exemple), puis vous relancez l'exception, à traiter à un niveau supérieur)
L'autre vous, c'est que vous ne vous souciez pas de la raison pour laquelle cela a mal tourné. L'impression par exemple. Vous pourriez avoir un hic, pour dire qu'il y a un problème avec votre imprimante, veuillez le régler et ne pas tuer l'application à cause de cela. Si votre code exécutait une série de tâches séparées en utilisant une sorte de calendrier, vous ne voudriez pas que le tout meure, car l'une des tâches a échoué.
Remarque Si vous faites ce qui précède, je ne peux pas recommander une sorte de journalisation des exceptions, par exemple essayez la fin du journal de capture, assez fortement.