Python尝试/除了取决于变量

时间:2016-02-04 20:02:56

标签: python if-statement error-handling try-except

我需要在程序之后继续,除非变量为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 

感谢您的评论。

2 个答案:

答案 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