Введение в Автолисп | страница 40
В практике составления программ удобно использовать эту функцию в специальной структуре, управляющей восстановлением конфигурации, например, следующей:
(defun myerr (s)
(if (/=s "Function cancelled")
(princ (strcat "\nError: " s))
)
(moder)
(setq *error* olderr)
(princ)
)
Теперь достаточно в главном модуле перед началом основных действий написать структуру
(setq olderr *error*)
(setq *error* myerr),
и при возникновении ошибки (например, при вводе оператором аргумента, тип которого не соответствует ожидаемому) измененные программой параметры конфигурации будут восстановлены.
Исходя из изложенного, следует сделать вывод, что в период составления и отладки программы целесообразно использовать внутреннюю оценку ошибок, а пользовательскую функцию включать в уже отлаженную программу, чтобы обезопасить конфигурацию от изменений в случае ошибки оператора.
8.2. Некоторые принципы оформления программ
Программирование на Автолиспе, как и на любом другом языке высокого уровня, предполагает соблюдение определенных норм и правил, облегчающих возможность использования и модификации законченных программ [5, 6].
Одним из важных компонентов программы является комментарий, в общем случае включающий в себя следующие элементы:
• имя программы, сведения об авторе, версию, дату создания;
• необходимые инструкции по использованию;
• замечания, облегчающие понимание структуры программы и логики программирования;
• собственные замечания, возникающие при прогоне и отладке программы.
Комментарий, описывающий назначение и особенности программы, располагаемый в ее начале, должен быть достаточно подробным, не вызывающим необходимости обращения к дополнительной документации. Следует при этом учитывать, что длина строки, выводимой на экран, на большинстве мониторов ограничена 80 символами. Увеличение количества точек с запятой, предваряющих комментарий, поможет подчеркнуть его важность.
Вдумчивое отношение к тексту программы поможет предотвратить появление непредумышленных ошибок. Многие функции Автолиспа (например, функции группы getxxx) контролируют соответствие характера вводимых данных структуре функций. Однако нередки ситуации, неподвластные такому контролю. Ранее упоминалось, что автоматическая объектная привязка может превалировать даже над прямым вводом координат точки, вследствие чего результат работы программы окажется совершенно неожиданным. В этом легко убедиться, включив автоматическую привязку в программе, например,