← Все вопросы
try/except: как поймать только конкретную ошибку?
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.
Ваш ответ
Войдите, чтобы ответить на вопрос.