Марк Лутц, «Изучаем Python», том 2, гл. 32:
«Целевое назначение конструкции else не всегда сразу очевидно для новичков в Python. Однако без нее отсутствует прямой способ сообщить (без установки и проверки булевских флагов), продолжил поток управления выполнение после оператора try из-за того, что никаких исключений не возникало или же исключение произошло и обработано. В любом случае мы оказываемся после оператора try:
try:
...выполнить код...
except IndexError:
...обработать исключение...
# Мы сюда попали из-за того, что try потерпел неудачу или же прошел?
Во многом подобно тому, как конструкции else в циклах придают причине выхода
большую очевидность, конструкция else предоставляет в операторе try синтаксис,
который делает то, что произошло, ясным и недвусмысленным:
try:
...выполнить код...
except IndexError:
...обработать исключение...
else:
...исключения не возникали...»
Post #4207
812
- 👍 4
- 🔥 1