Первый метод означает, что любой пользователь функции spam()
должен проверить, возвращает ли он число или None
, прежде чем он попытается использовать результат (если все, что он делает, это печатает результат, как в вашемпример).
Второй метод означает, что все пользователи должны добавлять try/except
вокруг вызовов.
В любом случае вызывающая сторона должна что-то сделать, чтобы справиться с ошибкой деления на ноль.
Второй метод более гибкий, поскольку вызывающие абоненты могут настраивать способ обработки исключения. Первый метод всегда печатает одно и то же сообщение и возвращает None
, вызывающий не может ничего с этим поделать.