在Python中抛出异常时设置退出码

43 投票
1 回答
59256 浏览
提问于 2025-04-16 21:41
$ 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,同时还要保留完整的错误堆栈信息。有什么好的办法吗?

1 个回答

60

看看这个traceback模块。你可以这样做:

import sys, traceback

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

这样做会把错误追踪信息写到标准错误输出,并且程序会以代码3退出。

撰写回答