Один
except для ValueError, TypeError, KeyError и NameError смешивает ошибки данных с багами программы. В CSV-файле неверная дата вызывает ValueError, пропущенная дата приводит к TypeError, а NameError обычно указывает на опечатку в коде.Обрабатывайте проблему там, где понятна причина: ловите ошибки разбора даты, заголовки проверяйте до чтения строк,
NameError оставляйте видимым. except Exception, который ловит почти все обычные ошибки, уместен при обработке независимых файлов: ошибка одного не должна останавливать остальные.В разборе Python Morsels этот подход показан на готовом скрипте. Для тренировки по очереди подайте ему CSV с неверной датой, пропущенным полем и ошибкой в заголовке. Сравните сообщения и решите, где нужен
except, а где предварительная проверка.
