Шаг 51.
Автоматизация Microsoft Word. Обработка ошибок выполнения при работе с объектом Application

    На этом шаге мы рассмотрим общие принципы обработки ошибок, возникающие при использовании объекта Application.

    Вызов методов объекта Application и его дочерних объектов может приводить к ошибкам в процессе работы программы. Эти ошибки нужно обрабатывать, иначе они приведут к "зависанию" приложения или всей системы.

    К тому же обработка ошибок - средство получения информации для анализа функционирования приложения. Как обычно, для обработки исключительной ситуации используем синтаксис try ... except ... end. Таким образом, каждое обращение к методам и объектам Application придется обрамлять синтаксисом обработки ошибок. Это, в конечном итоге, приведет к увеличению исходного текста программы и сопутствующим проблемам. Решением этих проблем может быть создание и использование пользовательской библиотеки процедур и функций с обработкой ошибок выполнения. Для начала можно создать библиотеку в виде модуля unit, а затем - в виде динамической библиотеки. Рассмотрим синтаксис библиотеки и процедур и функций для работы с Word.Application.

unit MyWord;

interface
// Заголовки процедур и функций
Function CreateWord:boolean;
Function VisibleWord(visible:boolean):boolean;

implementation
// Используемые библиотеки
uses ComObj;
// W - переменная, которая является ссылкой на объект Application
var W:variant;
// Функция CreateWord создает объект Word.Application и помещает ссылку
//на него в переменную W:variant. Если объект создан без ошибок, то
// исключительная ситуация не возникает и функция возвращает True. Если
// возникает ошибка, например если приложение Word не установлено
// в системе, то вызывается исключительная ситуация и функция возвращает
// значение False.
Function CreateWord:boolean;
begin
  CreateWord:=true;
  try
    W:=CreateOleObject('Word.Application1);
  except
    CreateWord:=false;
  end;
End;

// Функция VisibleWord показывает/скрывает окно приложения Word.
// Она основана на свойстве Visible объекта Application.
// В результате ошибки возникает исключительная ситуация
//и функция возвращает  значение  False.
Function VisibleWord (visible: boolean):boolean;
begin
  VisibleWord:=true;
  try
    W.visible:= visible;
  except
    VisibleWord:=false;
  end;
End;

end.
Текст этого модуля можно взять здесь (0,8 Кб).

    Со следующего шага мы начнем рассматривать создание простого документа.




Предыдущий шаг Содержание Следующий шаг