Если в процессе выполнения AutoLISP-файла автозагрузки происходит ошибка, то оставшаяся часть файла игнорируется и не загружается.
Если файлы, указанные в файле загрузки, не существуют или отсутствуют в папках библиотеки продукта, могут возникнуть ошибки. Для предотвращения прерывания выполнения файла автозагрузки при возникновении ошибки можно использовать аргумент onfailure функции load. В следующем примере иллюстрируется использование аргумента onfailure :
(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 возвращает значение последнего выражения, содержащегося в файле. Обычно в этом качестве выступает либо имя самой последней определенной в файле функции, либо подсказка по использованию функции. В случае неуспешного выполнения функция возвращает значение аргумента onfailure. В предыдущем примере значение, возвращаемое функцией load, передается функции princ, в результате чего это значение отображается в командной строке.
Например, если ошибка возникает при загрузке файла mydocapp1.lsp программой, функция princ отображает приведенное ниже сообщение, после чего программа продолжит загрузку двух оставшихся файлов:
Файл MYDOCAPP1.LSP не загружен.
В файлах acad.lsp, acadlt.lsp, acaddoc.lsp, acadltdoc.lsp и файлах MNL функция command обязательно должна вызываться из конструкции defun. Для задания последовательности команд, выполняемой в момент запуска сеанса работы с чертежом, необходимо использовать функцию S::STARTUP.