Вы пишете функцию parse_age(age_text), которая должна принимать только неотрицательный возраст. Как лучше явно сообщить об ошибке входных данных, если пришло -5?

AВернуть строку 'error' и продолжить расчёты с этим значением дальше
BВывести предупреждение через print и продолжить работу с отрицательным возрастом
CСделать raise KeyError('age'), чтобы пометить проблему отсутствующего ключа
DСделать raise ValueError('age must be non-negative') и прервать выполнение
Правильный ответ. Для некорректного значения входных данных уместен raise ValueError(...).

Разбор

Когда входные данные нарушают ожидания (например, возраст отрицательный), полезно «сломать» выполнение явным исключением. raise ValueError(...) делает ошибку понятной, позволяет быстро отладить источник плохих данных и не продолжать расчёты с некорректными значениями. KeyError сигнализирует об отсутствующем ключе в словаре — это другая семантика. Возврат строки или вывод через print маскирует ошибку и легко проигнорировать.

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

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