相关疑难解决方法(0)

Python中的退出代码

我收到一条消息说script xyz.py returned exit code 0.这是什么意思?

Python中的退出代码是什么意思?那里有多少?哪些重要?

python exit-code

185
推荐指数
11
解决办法
40万
查看次数

引发异常时在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
Run Code Online (Sandbox Code Playgroud)

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

python exception exit-code

30
推荐指数
1
解决办法
3万
查看次数

当python脚本有未处理的异常时退出代码

我需要一个方法来运行python脚本文件,如果脚本失败并带有未处理的异常,python应该以非零退出代码退出.我的第一次尝试是这样的:

import sys
if __name__ == '__main__':
    try:
        import <unknown script>
    except:
        sys.exit(-1)
Run Code Online (Sandbox Code Playgroud)

但由于__main__经常使用的防护,它打破了很多脚本.有关如何正确执行此操作的任何建议?

python exit-code

8
推荐指数
1
解决办法
1万
查看次数

在python中为自定义异常设置退出代码

我使用自定义异常来区分Python的默认异常.

有没有办法在引发异常时定义自定义退出代码?

class MyException(Exception):
    pass

def do_something_bad():
    raise MyException('This is a custom exception')

if __name__ == '__main__':
    try:
        do_something_bad()
    except:
        print('Oops')  # Do some exception handling
        raise
Run Code Online (Sandbox Code Playgroud)

在此代码中,main函数在try代码中运行一些函数.在我捕获异常后,我想重新提升它以保留回溯堆栈.

问题是'raise'总是退出1.我想用自定义退出代码(对于我的自定义异常)退出脚本,并在任何其他情况下退出1.

我已经看过这个解决方案,但它不是我想要的: 在引发异常时在Python中设置退出代码

这个解决方案迫使我检查我使用的每个脚本,无论异常是默认还是自定义.

我希望我的自定义异常能够告诉raise函数使用哪个退出代码.

python exception raise

8
推荐指数
1
解决办法
4527
查看次数

标签 统计

python ×4

exit-code ×3

exception ×2

raise ×1