在Python中设置异常发生时的退出代码

问题描述 投票:0回答:2
$ 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

我想将此退出代码从 1 更改为 3,同时仍转储完整的堆栈跟踪。最好的方法是什么?

python exception exit-code
2个回答
60
投票

查看

traceback
模块。您可以执行以下操作:

import sys, traceback

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

这会将回溯写入标准错误并以代码 3 退出。


0
投票

您可以引发

SystemExit()
异常并在构造函数中传递代码。请参阅https://docs.python.org/3/library/exceptions.html#SystemExit

© www.soinside.com 2019 - 2024. All rights reserved.