За что отвечает finally в блоке try...except
Python
Middle
Без компании
За что отвечает finally в блоке try...except
Ответы
Блок `finally` выполняется всегда, независимо от того, было ли исключение в `try` или нет. Он используется для освобождения ресурсов (закрытие файлов, соединений и т.д.), которые должны быть обработаны в любом случае.
Пример:
```
file = None
try:
file = open('example.txt', 'r')
data = file.read()
except FileNotFoundError:
print("Файл не найден")
finally:
if file: # Проверяем, был ли файл открыт
file.close() # Закрываем файл в любом случае
print("Операция завершена")
```
Ключевые моменты:
- `finally` выполнится даже при `return` внутри `try`/`except`
- Исключения в `finally` перекроют исходные исключения
- Не заменяет контекстные менеджеры (`with`), но полезен в сложных сценариях