русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Использование процедуры Assert


Дата добавления: 2014-04-30; просмотров: 1368; Нарушение авторских прав


В Object Pascal введена специализированная процедура Assert, назначение которой - помощь в отладке кода и контроле над выполнением программы. Процедура является аналогом макроса ASSERT, который широко применяется практически во всех программах, написанных с использованием C и C++ и их библиотек. Синтаксис процедуры Assert: procedure Assert(expr : Boolean [; const msg: string]); Процедура Assert обычно применяется в следующих случаях:

· в начале процедуры или функции для проверки правильности переданных аргументов;

· в конце работы алгоритма для проверки правильности работы алгоритма;

· для проверки правильности выполнения "надежных" функций, то есть тех функций, которые всегда должны выполняться успешно всегда, и их невыполнение рассматривается как фатальная ошибка программы; хороший пример - функция CloseHandle вызываемая с верным дескриптором: в правильности выполнения этой функции можно практически не сомневаться, однако результат ее выполнения все-таки можно и нужно проверить.

Директива {$ASSERTIONS ON|OFF} позволяет компилировать вызовы assert или игнорировать их. Таким образом, в отладочной версии директива будет включена и компилятор будет генерировать код для вызовов assert, а в готовую версию этот код можно не включать, установив директиву {$ASSERTIONS OFF}.

Использование адреса ошибки и MAP-файла с информацией об адресах процедур

MAP-файл представляет собой список сегментов в скомпилированной программе с указанием типа сегментов и их расположения в готовом коде. Т. к. при возникновении исключения можно получить адрес источника исключения, анализ MAP-файла позволит найти, в какой процедуре находится вызвавший сбой код. Ручной анализ MAP-файла неудобен, однако возможно написание специального анализатора для него. Это направление выходит за рамки представленного здесь материала. Дополнительно о структуре MAP-файла можно прочитать на странице http://www.siteBuilder.ru/borlandMapFile.htm.



Использование повторного вызова исключения в обработчике try … except … end

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

try

...

except

on E: Exception do

raise Exception.Create(E.Message + #13#10#13#10 +

'{17676641-B7C3-11D4-AAE7-000000000000}');

end

 

В приведенном примере строка уникального номера сгенерирована Delphi по нажатию клавиш Ctrl+Shift+G и представляет собой GUID (Globally Unique Identifier), уникальность которого гарантирована.



<== предыдущая лекция | следующая лекция ==>
Компонент TSession | Разработка компонента для обработки ошибок


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.129 сек.