Est-il possible de faire un essai - sauf intercepter tout ce qui montre encore l'erreur sans attraper toutes les exceptions possibles? J'ai un cas où des exceptions se produiraient une fois par jour tous les quelques jours dans un script fonctionnant 24h/24 et 7j/7. Je ne peux pas laisser le script mourir, mais ils ne comptent pas non plus, car il réessaye peu importe le temps que j'essaie, à l'exception de tout. Ainsi, même si je recherche les dernières rares exceptions, je souhaite les consigner dans un fichier pour un débogage ultérieur.
exemple:
try:
print(555)
except:
print("type error: "+ str(the_error))
Un moyen de remplacer the_error
avec une trace de pile ou quelque chose de similaire?
Oui, vous pouvez intercepter toutes les erreurs comme ceci:
try:
print(555)
except Exception as e:
print("type error: " + str(e))
Pour la trace de la pile, j'utilise généralement le module traceback :
import traceback
try:
print(555)
except Exception as e:
print("type error: " + str(e))
print(traceback.format_exc())
Tu peux faire:
try:
print(555)
except Exception as err:
print("Erro {}".format(err))
Ou utilisez augmenter
Doc's sont toujours vos amis
Astuce: évitez d'utiliser "sauf:"
Utilisez quelque chose de plus descriptif comme
...
except (ValueErro, KeyError):
À moins que votre code ne soit très bien testé, vous ne pouvez pas résoudre toutes les erreurs.