Вы пишете функцию parse_age(age_text), которая должна принимать только неотрицательный возраст. Как лучше явно сообщить об ошибке входных данных, если пришло -5?
AВернуть строку
'error'.BВывести сообщение через
print и продолжить работу.CСделать
raise ValueError('age must be non-negative').DСделать
raise KeyError('age').Правильный ответ. Для некорректного значения входных данных часто уместен
raise ValueError(...).Разбор
Когда входные данные нарушают ожидания (например, возраст отрицательный), полезно «сломать» выполнение явным исключением. raise ValueError(...) делает ошибку понятной, позволяет быстро отладить источник плохих данных и не продолжать расчёты с некорректными значениями.
Проверь себя · 1/3разбор после ответа
Вы читаете сумму из CSV как строку
value = '3.14' и пытаетесь сделать int(value). Что произойдёт?Ещё вопросы по теме «Исключения и отладка»
- В обработчике данных вы используете конструкцию `try`/`except`/`finally`. Внутри `try` происходит ошибка, она поймана в `except`. Что произойдёт с кодом в `finally`?
- Вы парсите событие в словарь `event`. Что произойдёт при обращении `event["currency"]`, если ключа `currency` в словаре нет?
- В отчёте вы считаете сумму и случайно складываете число и строку: `total + "10"`. Какое исключение наиболее вероятно?
- Скрипт получает список строк, но иногда он короче ожидаемого. Что произойдёт при обращении `rows[3]`, если в списке всего 3 элемента?
- Вы пишете функцию, которая внутри `try` делает `return`, а в `finally` закрывает ресурс (например, файл или соединение). Что произойдёт с кодом в `finally` при `return` из `try`?
- Все вопросы по «Исключения и отладка» →