Quale di questi è più facile da leggere?
Un blocco except
vuoto:
try:
foo = do_foo()
except FooError:
pass # see below
else:
return do_bar(foo)
# Recover from the FooError (long, complicated)
O questo:
try:
foo = do_foo()
except FooError:
# Recover from the FooError (long, complicated)
else:
return do_bar(foo)
Si noti che il recupero è significativamente più complesso rispetto al blocco else
su una riga. Può di per sé comportare blocchi dentellati o altre complicazioni. La prima opzione ha il vantaggio di eliminare un livello di indentazione. Ma la seconda opzione è probabilmente più vicina a ciò che lo sviluppatore medio si aspetta di vedere. Sono incerto su quale di queste preoccupazioni sia più importante per la leggibilità.