При вызове функции проверяется, чему равно значение переданного в нее булевого выражения
ехрr. Если оно равно True, то ровным счетом ничего не происходит. Если же оно равно
False, создается ИС EAssertionFailed. Все это было бы довольно тривиально с точки зрения уже изученного, если бы не два обстоятельства:
1. Предопределенный обработчик EAssertior.Failed
устроен таким образом, что выдает не шестнадцатеричный адрес ошибки, а имя файла с исходным текстом и номер строки, где произошла ИС, как показано на рис. 3.4.
Рис. 3.4. Окно сообщения
обработчика исключительной ситуации EAssertionFailed
2. При помощи специальной директивы компилятора
{$ASSERTIONS ON/OFF} (или, что то же самое,
{$с+}/{$с-}) возникновение этих ИС можно
централизованно запретить. То есть в отлаживаемом коде в режиме {$с+}
можно расставить вызов Assert во всех
сомнительных и проверяемых местах. Когда же придет время генерации конечного
варианта кода, переключением директивы на {$c-}
весь отладочный вывод запрещается.
Знаете ли Вы, что диаграмма состояний состоит - из множества состояний объектов; - из множества событий, сообщающих о перемещении чего-либо в новое состояние; - из множества правил переходов, определяющих новое состояние объекта при возникновении тех или иных событий; - из множества действий, которые должны быть выполнены объектом, когда он переходит в новое состояние.