我需要在程序之后继续,除非变量为True但变量为False时需要退出程序。 我想会有其他但我不确定如何使用它。
for examlpe:
var = True
try:
print 2/0
except:
exit(1)
... continue executing
var = False
try:
print 2/0
except:
exit(1)
... exit
感谢您的评论。
答案 0 :(得分:1)
这应该可以解决问题,就像你应该使用加注一样。
var = True
try:
print 2/0
except:
if not var:
# I recommend using raise, as it would show you the error
exit(1)
答案 1 :(得分:1)
如果你有许多except
组需要使用var,请尝试使用
请注意,您可以使用装饰器或闭包扩展myexcept,以便在异常中设置其他处理。由于函数是一个对象,因此您可以为您编写的每个except:
使用不同的specialfunc()。您可以使用变量参数进程设置myexcept以使用参数处理对specialfunc()的调用,如下所示
def specialfunc1():
# put the special function code here
def specialfunc2(arg1):
# put the processing here
def specialfunc3(arg1, arg2):
# put the processing here
def myexcept(var, e, specialfunc, *args)
print 'Exception caught for ', e
if var:
specialfunc(*args)
else:
raise # This raises the current exception to force an exit
try:
# code you are testing
2/0
except Error1, e:
myexcept(var, e, specialfunc1)
except Error2, e:
myexcept(var, e, specialfunc2(arg1))
except Error3, e:
myexcept(var, e, specialfunc3(arg1, arg2))
except: # this default forces the regular exception handler
# remaining code