← Все вопросы

try/except: как поймать только конкретную ошибку?

Задан 15 дней назад121 просмотров2 ответа
7

Пишу except: и ловлю всё подряд, включая опечатки в своём коде — потом полдня ищу баг. Как ловить только нужное исключение?

2 ответа

12
✓ Принятый ответ — помог автору

Указывай конкретный класс исключения:

try:
    x = int(input())
except ValueError:
    print('Нужно число')

Голый except: ловит вообще всё (даже KeyboardInterrupt) и прячет настоящие баги. Лови только то, что ожидаешь: ValueError, KeyError, ZeroDivisionError и т.д.

Татьяна Петрова а можно несколько через except (A, B)? · 11 дней назад
Валерия Полякова да, голый except меня уже не раз подставлял · 11 дней назад
4

Можно несколько: except (ValueError, TypeError):. И почти никогда не нужен голый except.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект