Вы пишете функцию 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 маскирует ошибку и легко проигнорировать.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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