Python sur-relance/recatch exception
Je voudrais savoir si il est possible en python pour soulever une exception dans un bloc except et de l'attraper dans un plus tard, à l'exception du bloc. Je crois que certains autres langues le faire par défaut.
Voici à quoi il devrait ressembler à"
try:
something
except SpecificError as ex:
if str(ex) = "some error I am expecting"
print "close softly"
else:
raise
except Exception as ex:
print "did not close softly"
raise
Je veux l'élever dans la clause else pour déclencher la dernière exception de l'énoncé.
En réalité, je ne suis pas l'impression de quelque chose, mais la journalisation et je veux ouvrir une session dans le cas que c'est le message d'erreur que je n'attends pas. Cependant ces enregistrements supplémentaires seront inclus dans la version finale sauf.
Je crois, une solution serait de faire une fonction si elle n'est pas de fermer doucement qui est appelée lors de la finale, sauf et dans la clause else. Mais cela semble inutile.
Vous devez vous connecter pour publier un commentaire.
Un seul
except
clause dans untry
bloc est invoquée. Si vous voulez l'exception d'être pris plus haut, alors vous aurez besoin d'utiliser imbriquéetry
blocs.Que sur l'écriture de 2 try...except blocs comme ceci:
except SpecificError as ex:
Voir stackoverflow.com/questions/2535760/... par rapport à virgule comme.Comme par python tutoriel il existe un et un seul attrapé exception par une instruction try.
Vous pouvez trouver assez simple exemple dans le tutoriel qui va vous montrer comment utiliser correctement l'erreur de formatage.
De toute façon, pourquoi avez-vous vraiment besoin d'un deuxième? Pourriez-vous fournir plus de détails sur cette?
Vous pouvez faire cela en utilisant la
six
paquet.En particulier, consultez
six.relancez
: