Форма входа
I Love Bashorg
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Программирование » Delphi » Исключительная ситуация EAbort (Обработка исключительных ситуаций)
Исключительная ситуация EAbort
BombersДата: Воскресенье, 11.04.2010, 00:09 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 62
Репутация: 0
Статус: Offline
Исключительная ситуация EAbort

Если вы внимательно просмотрели код системной процедуры HandieException, то увидели там упоминание класса EAbort. ИС EAbort служит единственным — и очень важным — исключением из правил обработки. Она называется "тихой" (Silent) и отличается тем, что для нее обработка по умолчанию не предусматривает вывода сообщений на экран. Естественно, все сказанное касается и порожденных от нее дочерних объектных классов.

Применение EAbort оправдано во многих случаях. Вот один из примеров. Пусть разрабатывается некоторая прикладная программа или некоторое семейство объектов, не связанное с VCL. Если в них возникает ИС, то нужно как-то известить об этом пользователя. А между тем прямой вызов для этого функции showMessage или даже MessageBox не всегда оправдан. Для маленькой и компактной динамической библиотеки не нужно тащить за собой громаду VCL. С другой стороны, в большом и разнородном проекте нельзя давать каждому объекту или подпрограмме самой общаться с пользователем. Если их разрабатывают разные люди, такой проект может превратиться в вавилонскую башню. Тут и поможет EAbort. Эта исключительная ситуация не создается системой — ее должен создавать и обслуживать программист.

Применение EAbort — реальная альтернатива многочисленным конструкциям if..then и тем более (упаси боже!) goto. Эта ИС не должна подменять собой другие, вроде ошибки выделения памяти или чтения из файла. Она нужна, если вы сами видите, что сложились определенные условия и пора менять логику работы программы.

If LogicalCondition then Raise EAbort.Create('Condition 1');

Если не нужно определять сообщение, можно создать EAbort и проще — вызвав процедуру Abort (без параметров), содержащуюся в модуле SYSUTILS.PAS.

 
Форум » Программирование » Delphi » Исключительная ситуация EAbort (Обработка исключительных ситуаций)
  • Страница 1 из 1
  • 1
Поиск:

Пятница, 19.04.2024, 23:49
Приветствую Вас Гость
Статистика
  • Admin icq status
    587643917
    Друзья сайта