import sys
def checkarg():
try:
filename=str(sys.argv[1])
if filename=="-mycommand":
print "SPECIFIC_TEXT"
sys.exit()
else:
return filename
except:
print "ERROR"
sys.exit()
大家好…我对上面的代码有问题。当我调用'checkarg'函数时,如果我没有在命令行上传递任何参数,我将得到“ERROR”输出和sys exit,正如预期的那样。
但是,如果我在命令行上提供一个参数(比如“-mycommand”),它会打印“SPECIFIC_TEXT”,然后也会从EXCEPT块打印“ERROR”消息。
TRY块只在我提供参数时运行,如果我不提供参数,则EXCEPT将获得转向。但是,它正在运行TRY和EXCEPT块。在
有人知道这种行为的原因吗??我的密码有错吗?谢谢大家!在
对于可以使用控制流逻辑检查状态的情况,您确实不应该使用
try
/except
。在相反,在本例中,检查if
len(sys.argv) > 1
。在另一个永远不要使用空的},这使得在没有一个混乱的终止之前,你的程序是不可能终止的。在
except
:你甚至会捕捉到系统异常,比如SystemExit
或{在此处找到答案:http://docs.python.org/library/sys.html
^{cd1>}通过引发异常来工作。所以你的exceptive块才会执行。
我想我理解你的问题。。。在
sys.exit()
通过引发SystemExit异常退出,except语句正在捕获该异常。在相关问题 更多 >
编程相关推荐