Что важно знать
- Голый except прячет ошибки.
- finally выполняется всегда, else — только без исключения.
- raise from сохраняет исходную причину в трассировке.
try, except, else и finally, цепочки исключений, свои исключения, with и контекстные менеджеры.
Практика. Написать контекстный менеджер для временной смены рабочего каталога — классом и через contextlib.
Практика. Описать иерархию исключений для своего сервиса и заменить голые except Exception на конкретные.
Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.
try — опасный код, except — обработка, else — если ошибки не было, finally — всегда.
Полный разборКонтекстный менеджер гарантирует подготовку и очистку вокруг блока with, даже при исключении.
Полный разборraise NewError(...) from err сохраняет исходную ошибку в __cause__ — в трассировке «The above exception was the direct cause». Простой raise внутри except ставит __context__ («During handling … another exception occurred»). from None скрывает исходную. Свои…
Полный разборОба запускают корутины конкурентно. gather при первой ошибке пробрасывает её, но остальные задачи продолжают работать брошенными (если не return_exceptions=True). TaskGroup (3.11) — структурная конкурентность: ошибка в одной задаче отменяет остальные, блок…
Полный разборtry, except, else и finally, свои исключения и цепочки raise from, with и контекстные менеджеры, ExceptionGroup.
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.