Thu*_*rEX 3 python coding-style nested flat
如果我想尝试很多方法来避免一些错误,我可以写:
try:
try:
trial_1()
except some_error:
try:
trial_2()
except some_error:
try:
trial_3()
...
print "finally pass"
except some_error:
print "still fail"
Run Code Online (Sandbox Code Playgroud)
但是有太多的试验,所以太多的巢,如何以平面样式写它?
如果每次都是相同的例外,你可以这样做
for task in (trial_1, trial_2, trial_3, ...):
try:
task()
break
except some_error:
continue
Run Code Online (Sandbox Code Playgroud)
如果知道它是否成功很重要,那么最简单的方法就是添加它
successful = False
for task in (trial_1, trial_2, trial_3, ...):
try:
task()
successful = True
break
except some_error:
continue
if successful:
...
else:
...
Run Code Online (Sandbox Code Playgroud)