Думайте о своей функции и обработке ошибок как об отдельных проблемах. Функция должна либо вернуть объект как результат (или автоматически None
без оператора return
), либо выполнить какое-либо действие, не возвращая явный результат. Избегайте их смешивания.
Если возникает ошибка, которую может обнаружить ваш код функции, поднимите Exception
на соответствующем уровне абстракции, чтобы код клиента мог обернуть вызов в блок try
и правильно обработайте ошибку, если для этого есть wi sh.