Предотвращение ошибок AutoLISP при выполнении файлов автозагрузки

Если в процессе выполнения AutoLISP-файла автозагрузки происходит ошибка, то оставшаяся часть файла игнорируется и не загружается.

Если файлы, указанные в файле загрузки, не существуют или отсутствуют по пути библиотеки программы, то могут возникнуть ошибки. Для предотвращения прерывания выполнения файла автозагрузки при возникновении ошибки можно использовать аргумент при_ошибке функции load. В следующем примере иллюстрируется использование данного аргумента:

(princ (load "mydocapp1" "\nMYDOCAPP1.LSP file not loaded."))
(princ (load "build" "\nBUILD.LSP file not loaded."))
(princ (load "counter" "\nCOUNTER.LSP file not loaded."))
(princ)

При успешном завершении функция load возвращает значение последнего выражения, содержащегося в файле. Обычно в этом качестве выступает либо имя самой последней определенной в файле функции, либо подсказка по использованию функции. В случае неуспешного выполнения функция возвращает значение аргумента при_ошибке . В предыдущем примере значение, возвращаемое функцией load, передается функции princ, в результате чего это значение отображается в командной строке.

Например, если ошибка возникает при загрузке файла mydocapp1.lsp программой, функция princ отображает приведенное ниже сообщение, после чего программа продолжит загрузку двух оставшихся файлов:

Файл MYDOCAPP1.LSP не загружен.

В файлах acad.lsp, acaddoc.lsp и MNL-файлах функция command обязательно должна вызываться из конструкции defun. Для задания последовательности команд, выполняемой в момент запуска сеанса работы с чертежом, необходимо пользоваться функцией S::STARTUP.