我同意 BlackVegetable 的观点,这可以通过一个简单的 if/elif 来完成,但是如果你有特定的理由想要使用异常,你可以这样做:
for method in (method1, method2, method3):
try:
return method(parameter)
except VerySpecificException as _:
pass
作为一个更完整的例子:
def method1(param):
raise Exception('Exception: method 1 broke')
def method2(param):
raise Exception('Exception: method 2 broke')
def method3(param):
print param
def main():
param = 'success!'
for method in (method1, method2, method3):
try:
return method(param)
except Exception as e:
print e
if __name__ == '__main__':
main()
印刷:
Exception: method 1 broke
Exception: method 2 broke
success!
如果第一个方法中的任何一个没有中断,那么这些方法将返回成功并且循环将结束。