TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.93K subscribers
Post #4248 828
Марк Лутц, «Изучаем Python», глава 36:

Использование пустой конструкции except может привести к серьезным проблемам:

«Программист здесь предполагает, что единственным видом ошибок, которые могут произойти при индексировании словаря, будет отсутствующий ключ. Но поскольку имя myditctionary написано неправильно (должно быть mydictionary), интерпретатор Python взамен генерирует исключение NameError для ссылки на неопределенное имя, которое обработчик молча перехватывает и игнорирует».

Что происходит в коде:
— Переменная mydictionary определена корректно;
— В блоке try используется неправильное имя myditctionary (с опечаткой);
— Это вызывает NameError, а не ожидаемый KeyError;
— Пустой except перехватывает любую ошибку, включая NameError;
— Программа продолжает выполнение, маскируя реальную проблему.

«В качестве эмпирического правила: будьте в своих обработчиках как можно более конкретными — пустые конструкции except и перехват суперкласса Exception удобны, но потенциально подвержены ошибкам».
  • 👍 3
  • 👎 1
More from @quiz_python
  1. Sep 26, 2026Развёрнутое пояснение: 1. При создании класса __slots__ разрешает экземплярам хранить атри…
  2. Sep 26, 2026Post #4900
  3. Sep 26, 2026Развёрнутое пояснение: 1. deque создаёт очередь из a и b с максимальной длиной 3. 2. appen…
  4. Sep 26, 2026Post #4898
  5. Sep 25, 2026Развёрнутое пояснение: 1. defaultdict(int) создаёт словарь, в котором фабрика int возвраща…
  6. Sep 25, 2026Post #4896
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →