【问题标题】:Setting exit code in Python when an exception is raised引发异常时在 Python 中设置退出代码
【发布时间】:2011-10-06 21:36:55
【问题描述】:
$ 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 python 在未处理的异常一直冒泡时使用的默认返回码值?我想知道它是否因异常类型而异。

标签: python exception exit-code


【解决方案1】:

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

import sys, traceback

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

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

【讨论】:

  • 但是没有办法安装这样的处理程序而不必打开try/except 子句吗?我宁愿只调用一次,可能是通过导入特定模块,然后每次提升 ExceptionWhichCausesExitCode3() 应该退出程序并退出代码 3。
  • 您的意思是sys.exit()exit 是一个仅用于交互式解释器的辅助函数。
  • 感谢@OozeMeister,你是对的,编辑了我的答案来解决这个问题。
猜你喜欢
  • 2013-05-23
  • 2015-04-27
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多