| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
11.04.2016, 09:58 | #1 | |
Как написать обработчик ошибки?
Регистрация: 19.11.2014
Сообщений: 2,435
|
||
Просмотров: 2665
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
А, я подумал, что у тебя пробелмы с открытием. Тогда используй функцию *error*, которая будет выполняться при ошибке. В ней и пропишешь закрытие файла. Типа:
Код:
__________________
Делай хорошо, плохо само получится. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
В конце концов, в "Библиотеке функций" есть обработчик ошибок. Весьма и весьма.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Проверил отлов ошибки в тестовой простой функции - работает:
Код:
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Во-первых, как ты определяешь, что файл не закрывается? Ты его можешь, например, переименовать после того, как программа завершила работу?
Во-вторых, поставь точки останова и пройдись по коду пошагово (если честно, там тьма мест, где можно сделать по-другому; но у меня сейчас на это нет времени). Таким образом выловишь ошибочное место.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Цитата:
Я не очень хорошо умею пользоваться редактором VLisp, пошагово не знаю как. Но тут и не вижу такой необходимости. Код без сознательно устроенной ошибки работает. Ошибка - отрицательный индекс массива safearray. Что мне даст пошаговая проходка? Я точно знаю где будет ошибка и точно знаю, что к моменту возникновения ошибки в локальной переменной file хранится дескриптор открытого файла. Но почему команда (close file) в обработчике *error* не закрывает файл? В сам обработчик программа точно заходит, потому что выводит сообщение "моя ошибка". |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Ну закрывай файл сразу как закончил из него читать. Дальше-то он тебе не нужен.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Сет, Ты из файла считываешь строчек 15 один раз. Перенеси (close file) после 49 строки. Дальше-то он тебе не нужен.
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Цитата:
Цитата:
Но глобальный вопрос остается. Почему обработчик *error* не закрывает файл? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Я полагаю, что дескриптор файла еще какое-то время (определяемое, кстати, не AutoCAD'ом) считается "занятым". Можешь после обработки данных вывести (princ) - только для обновления статуса AutoCAD
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 19.11.2014
Сообщений: 2,435
|
Что это значит? После (close file) файл еще некоторое время будет недоступен? При выполнении кода без ошибок это не так - внешнее приложение сразу получает доступ к файлу.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Ну, я сказал на основании собственного опыта работы с VB6 - там не всегда освобождалось сразу.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибки Autocad MEP, Autocad Architecture, Autodesk Design Review | VitalyAF | Вертикальные решения на базе AutoCAD | 60 | 11.10.2023 19:49 |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
AutoCAD 2013 Rus SP2 СПДС при проверке _audit находит и исправляет ошибки но, повторная проверка опять указывает на тоже | zoro | ПО от CSoft | 10 | 06.08.2013 00:33 |
Ошибки в сортаментах (покушение на основы) | IBZ | Разное | 18 | 02.09.2008 13:03 |