web-dev-qa-db-fra.com

Définition du code de sortie dans Python lorsqu'une exception est levée

$ cat e.py
raise Exception
$ python e.py
Traceback (most recent call last):
  File "e.py", line 1, in <module>
    raise Exception
Exception
$ echo $?
1

Je voudrais changer ce code de sortie de 1 à 3 tout en vidant la trace de pile complète. Quelle est la meilleure façon de procéder?

32
sh-beta

Jetez un œil au module traceback . Vous pouvez effectuer les opérations suivantes:

import sys, traceback

try:
  raise Exception()
except:
  traceback.print_exc()
  sys.exit(3)

Cela va écrire traceback sur l'erreur standard et quitter avec le code 3.

43
tomasz