Глава 5: Отладка и обработка ошибок
MapBasic Руководство пользователя
83
Другие средства отладки
Операторы языка MapBasic Note и Print также могут использоваться
при отладке программы. Например, если Вы хотите держать под
контролем изменение значения некоторой переменной, просто
воспользуйтесь оператором
Print:
Print "Текущее значение: " + counter
чтобы выдавать текущее значение в окне "Сообщения".
Обработка ошибок
В аккуратно написанной программе должна быть по возможности
предусмотрена реакция на возможные ошибки при выполнении. В
языке MapBasic реагировать на ошибки времени выполнения можно с
помощью оператора
OnError.
Для программистов, имеющих опыт работы с другими языками типа
BASIC, заметим: в MapBasic
OnError пишется вместе.
В любом месте программы можно включить режим реакции на
ошибки. По умолчанию, в начале выполнения любой процедуры или
функции этот режим отключен. Использование оператора
OnError
включает режим реакции на ошибки.
Обычно в операторе
OnError указывается метка, которая должна
присутствовать в той же процедуре или функции, что и этот оператор.
Группу операторов, расположенных после такой метки, называют
процедуройобработчиком ошибки или просто обработчиком ошибки.
При обнаружении ошибки во время выполнения программы MapBasic
переходит на указанную метку и запускает обработчик ошибки вместо
того, чтобы просто прервать выполнение программы.
При обработке ошибки можно обращаться к функции
Err( ), чтобы
узнать код выявленной ошибки (типа Integer). А функция
Error$( )
возвращает строку с сообщением об ошибке. Полное описание
возможных кодов ошибок языка MapBasic можно найти в текстовом
файле ERRORS.DOC из комплекта поставки.
Процедураобработчик ошибки должна оканчиваться оператором
Resume. Оператор Resume указывает, с какой строки MapBasic должен
продолжить выполнение программы. Подробнее обработка ошибок,
возникающих при выполнении программы, описана в главах
OnError,
Resume, Err( ) и Error$( ) в Справочнике MapBasic.
Внимание: В каждый конкретный момент времени возможна
обработка только одной ошибки. Если новая ошибка случится
в процедуре обработки ошибок (до оператора Resume), то
работа приложения будет прекращена.