Здравствуйте, Аноним, Вы писали:
А>Ниже по ветке я уже говорил, что assert'ы нужны для разработчика кода, не для пользователя exe'шника.
Да собственно и исключения тоже для программиста. Просто если провести грань между средствами верификации, то исключения я применяю там где нужно оповестить пользовательский код о неправильной операции, а ассерты я применяю на уровне моего системного кода для проверки неотлаженного низлежащего кода.
А>Все данные вводимые пользователем проверяются сразу при их вводе (вот где используютеся код constraine класса SomeClass, напр. is_valid_prop2()), в случае неудачной проверки, выводится сообщение, где предлагается ввести корректные данные, или выбрасывается исключение, зависит от типа приложения. Коду SomeClass неважно где его будут использовать, поэтому он не знает что делать в случае неверного prop2_: исключение, код ошибки, сообщение... Задача разработчика класса SomeClass предоставить набор методов валидации данных; задача разработчика приложения, использующего SomeClass, пропускать все входные данные для SomeClass, вводимые пользователем, через соответствующие функции валидации, и написать код для обработки некорректных входных данных.
да, только сообщениями пользоваться не стоит, SomeClass может использоваться в самых разных средах, с разными типами аллертов. Принимать решение о выбрасывании сообщений должен пользовательский код, если он может показать месаджбокс или распечатать html, или бибикнуть на экране деньгомата в банке, в зависимости от системы.
Will I live tomorrow? Well I just can't say
But I know for sure — I don't live today.
Jimi Hendrix.