При обработке исключительной ситуации может потребоваться доступ к объекту, описывающему эту ситуацию и содержащему код ошибки, текстовое описание ошибки и т.д. В этом случае используется расширенная запись оператора on:
on <идентификатор объекта> : <класс исключительной ситуации> do <оператор>; |
Например, объект исключительной ситуации нужен для того, чтобы выдать пользователю сообщение об ошибке:
try // защищаемые операторыexcept on E: EOutOfMemory do ShowMessage(E.Message);end; |
Переменная E — это объект исключительной ситуации, ShowMessage — процедура модуля DIALOGS, отображающая на экране небольшое окно с текстом и кнопкой OK. Свойство Message типа string определено в классе Exception, оно содержит текстовое описание ошибки. Исходное значение для текста сообщения указывается при конструировании объекта исключительной ситуации.
Обратите внимание, что после обработки исключительной ситуации освобождение соответствующего объекта выполняется автоматически, вам этого делать не надо.