Python使用for/else实现多层嵌套try-except语句处理异常的优雅方法

时间:2022-06-01 18:07:56

多层嵌套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()