Зависит от того, сможете ли вы обработать size < 0
в точке, где обнаружено size < 0
.
Если вы можете обработать это, печатая сразу, то print
, в противном случае, создайте исключение, чтобы делегировать обработку этого условия чему-то еще дальше по стеку вызовов, например:
def divide_three_by(val):
if val == 0:
raise ValueError("Can't divide by 0")
return 3/val
try:
divide_three_by(some_value_from_user)
except ValueError:
print "You gave stupid input"
В приведенном выше примере (по общему признанию очень надуманного) функция divide_three_by
не знает, что делать, если вы передаете 0 - иногда вы можете просто захотеть напечатать сообщение (например, если val
поступило от ввода пользователя ), иногда вы можете просто игнорировать его и назначить значение по умолчанию. Так как функция не знает, что делать, она должна передать ответственность за обработку этого условия в стеке вызовов любому вызывающему его (и если это не может быть обработано там, она будет продолжать передаваться по стеку вызовов, пока что-то не обработает его или до тех пор, пока она не достигнет верхнего уровня, после чего ваша программа завершит работу.)
Подробнее об обработке исключений в Python - посмотрите учебник Ошибки и исключения в документации по Python.