Выбор ответа Junior Исключения и контекстные менеджеры обновлено
Порядок веток except
Вопрос
Что напечатает код при FileNotFoundError в open?
try:
open('nope.txt')
except OSError:
print('os')
except FileNotFoundError:
print('missing')
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: os. FileNotFoundError подкласс OSError.
Варианты ответа
missingosправильный ответosиmissing- Ничего, исключение уйдёт наружу
Разбор
FileNotFoundError подкласс OSError. Ветки except проверяются сверху вниз, и срабатывает первая подходящая, то есть OSError. До второй ветки дело не дойдёт, и линтеры предупреждают о такой недостижимой ветке. Конкретные исключения ставят выше общих.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.