在Python中抛出异常时设置退出码
$ 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退出。