gpt4 book ai didi

python - 如果从命令行运行,我如何退出 Python,否则打印堆栈跟踪

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:06 24 4
gpt4 key购买 nike

如果我的函数是从命令行执行的,我想在我的函数中遇到异常时退出 Python,但如果我的函数不是从命令行运行的,我想引发异常并打印堆栈跟踪。

现在我有

    try:
#...
except Exception as e:
print('ERROR: Some useful message')
if __name__ == '__main__':
raise SystemExit
else:
raise e

但我觉得我在这里要么做得太多,要么做得太少。

当我的函数从命令行运行时,是否有一种惯用的方法来获取带有原始异常的堆栈跟踪?但如果它是从命令行运行的,只需退出?

最佳答案

更好的方法是这样做:

import sys

def func():
do_actual_processing()
if not successful:
raise Exception("Yadayada")

if __name__ == '__main__'
try:
func()
except Exception as e:
sys.exit(1)

也就是说,函数本身不需要关心它是否从命令行运行。

关于python - 如果从命令行运行,我如何退出 Python,否则打印堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28768311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com