【发布时间】:2014-02-10 09:10:30
【问题描述】:
我对这个try/except 声明有两个目标。
- 如果没有发生问题,它需要
return值 1,如果发生任何问题,则需要 0。 - 需要引发异常并结束脚本。
我的return 值有效。我也有SystemExit() 工作。但是在一起,它们不起作用。
我的 Python 脚本(相关):
except IOError:
value_to_return = 0
return value_to_return
raise SystemExit("FOOBAR")
这样,它会完全忽略raise SystemExit("FOOBAR") 行。如何获得返回值并且仍然是raise SystemExit("FOOBAR")?这对某些人来说可能是初级的,但实际上我在这方面遇到了很多困难。
【问题讨论】:
-
如果你提出 SystemExit 并且实际上希望你的脚本结束,返回值应该去哪里(脚本毕竟结束了)?还是先捕获异常,返回,做一些错误处理,然后退出?
-
如果你回来,加薪就不会发生。无论如何,你不能两者都做!选择你想要的,退出或返回。
-
只是猜测,但您可能需要返回 0 并让 调用者 提高
SystemExit。无法在同一个函数中同时执行这两种操作。 -
您是否要向外壳返回状态码?
-
我与首席工程师再次核对。他想要的是我的脚本返回一个 0,因为出现了问题,并且脚本应该结束,因为从那时起它就变得无用了。所以我确实需要返回一个 0 并结束脚本。我尝试了以下所有其他答案,均未奏效。
标签: python exception exception-handling return systemexit