Время от времени в Python я вижу блок:
try:
try_this(whatever)
except SomeException as exception:
#Handle exception
else:
return something
В чем причина существования try-except-else?
Мне не нравится такое программирование, поскольку он использует исключения для управления потоком. Однако, если он включен в язык, для этого должна быть веская причина, не так ли?
Я понимаю, что исключения не являются ошибками, и что их следует использовать только для исключительных условий (например, я пытаюсь записать файл на диск, и нет больше места, или, может быть, я не имеют разрешения), а не для управления потоком.
Обычно я обрабатываю исключения как:
something = some_default_value
try:
something = try_this(whatever)
except SomeException as exception:
#Handle exception
finally:
return something
Или, если я действительно ничего не хочу возвращать, если произойдет исключение, тогда:
try:
something = try_this(whatever)
return something
except SomeException as exception:
#Handle exception