我的功能如下:
function foo(a,b,c):
if a==1:
do something
elif a==2:
do something
else:
exit abnormally #1
return v1,v2,..
如果我想在代码中#1
退出此功能,推荐的方法是什么?我想提出一些异常,打印错误信息,返回调用函数并停止程序。 sys.exit(0)
将退出,但这是推荐的方式吗?
答案 0 :(得分:0)
这取决于。 如果你想提出一个Expection,那么在方法中提高它。 如果你不处理它,程序将崩溃。这通常不是停止程序的好方法,当异常是可预测的时候不应该是这种情况。 如果你处理它(使用try / catch)那么你应该 a)做一些事情,以便程序可以继续 b)通知用户出现问题且无法处理并退出
通常如果出现问题时使用sys.exit(x),则x大于0
如果没有出错,返回是默认值,方法/功能完成
sys.exit(0)用于终止程序 例如如果你有一个特定的按钮(或组合键等),当按下时,应该停止应用程序
答案 1 :(得分:-1)
我相信sys.exit(0)将退出程序,而不是返回调用函数。正如让 - 弗朗索瓦所说,我相信你想提出例外。如果你想让调用函数处理那个异常(即你的程序没有结束),那么用try - except逻辑将对foo的调用包围起来。