多层嵌套try-except语句处理异常示例:
try:
method_a()
except ProcessError:
try:
method_b()
except ProcessError:
try:
method_c()
except ProcessError:
ignore()
如果处理的方法很多,就会导致要写一个很深层的嵌套语句,显然这是一个很不优雅的实现方法。
使用for/else语句可以很优雅的解决上面嵌套的问题。
for proc in [method_a, method_b, _c]:
try:
proc()
except ProcessError:
continue
else:
break
else:
ignore()