Здравствуйте, Roman Odaisky, Вы писали:
RO>Вопрос, собственно, не зависит от языка и состоит примерно в следующем: насколько идеологически правильно использовать enforcers, т. е., функции, которые или возвращают свой аргумент, или бросают исключения? Александреску их так хвалил, и они во многом упрощают жизнь, но это по определению функции с побочными эффектами, которые зло, как показывает пример выше.
В данном случае я бы просто разделил функцию на две: get_parent и test_owner. Вторая вообще могла бы не возвращать значения, просто кидать исключение, если что-то не так.