Dlaczego podniesienie wyjątku jest skutkiem ubocznym?

Zgodnie z wpisem wikipedii dlaefekt uboczny, zgłoszenie wyjątku stanowi efekt uboczny. Rozważ tę prostą funkcję Pythona:

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

Wywoływanie go za pomocąfoo(None) zawsze będzie spełniony wyjątek. To samo wejście, to samo wyjście. Jest przezroczysto-referencyjny. Dlaczego nie jest to czysta funkcja?

questionAnswers(4)

yourAnswerToTheQuestion