Почему создание исключения является побочным эффектом?

Согласно статье в Википедии для side effect, возбуждение исключения представляет собой побочный эффект. Рассмотрим эту простую функцию Python:

def foo(arg):
    if not arg:
        raise ValueError('arg cannot be None')
    else:
        return 10

Вызов ее с помощью foo(None)всегда будет встречаться с исключением. Тот же ввод, тот же вывод. Это ссылочно прозрачно. Почему это не чистая функция?

43
задан Daenyth 22 May 2012 в 13:43
поделиться