Вы преобразуете поле из CSV: price = int(text). Иногда там встречается 'N/A'. Какой вариант обработки лучше всего соответствует цели «ловить только ожидаемую ошибку, а не всё подряд»?

Aexcept Exception: с price = 0: ловит широкий класс ошибок, включая баги в логике скрипта
Bexcept ValueError: с обработкой плохого значения: ожидаемое исключение от int(...) ловится точечно
CГолый except: с pass: обрабатывает любые исключения, в том числе KeyboardInterrupt и SystemExit
DБез try/except: скрипт падает на первом нечисловом значении в поле text
Правильный ответ. Ловите ожидаемые исключения конкретных типов, например ValueError при int(...).

Разбор

В аналитических пайплайнах часть ошибок ожидаема — например, плохие значения в полях. Но except Exception: опасен: он скроет и баги в коде, которые лучше увидеть. Голый except: ещё хуже: он проглотит даже KeyboardInterrupt. Правильнее ловить конкретное исключение ValueError для некорректного значения — обработка контролируемая, а отладка — простая.

Проверь себя · 1/3разбор после ответа
Вы парсите событие в словарь event. Что произойдёт при обращении event['currency'], если ключа currency в словаре нет?
Тренировать Python в Telegram

Ещё вопросы по теме «Исключения и отладка»