Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Визначені оброблювачі виняткових ситуацій



Нижче Ви знайдете довідкову інформацію з визначеним виключенням, необхідну для професійного програмування в Delphi.

· Exception - базовий клас-предок всіх оброблювачів виняткових ситуацій.

· EAbort - “сховане” виключення. Використовуйте його тоді, коли хочете перервати той чи інший процес з умовою, що користувач програми не повинний бачити повідомлення про помилку. Для підвищення зручності використання в модулі SysUtils передбачена процедура Abort, визначена, як:

procedure Abort;

begin

raise EAbort.CreateRes(SOperationAborted) at ReturnAddr;

end;

· EComponentError -викликається в двох ситуаціях:

1) при спробі реєстрації компоненти за межами процедури Register;

2) коли ім'я компонента не унікально чи не припустимо.

· EConvertError -відбувається у випадку виникнення помилки при виконанні функцій StrToInt і StrToFloat, коли конвертація рядка у відповідний числовий тип неможлива.

· EInOutError - відбувається при помилках уведення/виведення при включеній директиві {$I+}.

· EIntError - предок виключень, що случаються при виконанні цілочисельних операцій.

· EDivByZero - викликається у випадку розподілу на нуль, як результат RunTime Error 200.

· EIntOverflow - викликається при спробі виконання операцій, що приводять до переповнення цілих перемінних, як результат RunTime Error 215 при включеній директиві {$Q+}.

· ERangeError - викликається при спробі звертання до елементів масиву по індексі, що виходить за межі масиву, як результат RunTime Error 201 при включеній директиві {$R+}.

· EInvalidCast - відбувається при спробі приведення перемінних одного класу до іншого класу, несумісному з першим (наприклад, приведення перемінної типу TListBox до TMemo).

· EInvalidGraphic - викликається при спробі передачі в LoadFromFile файлу, несумісного графічного формату.

· EInvalidGraphicOperation - викликається при спробі виконання операцій, непридатних для даного графічного формату (наприклад, Resize для TIcon).

· EInvalidObject -реально ніде не використовується, оголошений у Controls.pas.

· EInvalidOperation - викликається при спробі чи відображення звертання по Windows-оброблювачі (handle) контрольного елемента, що не має власника (наприклад, відразу після виклику MyControl:=TListBox.Create(...) відбувається звертання до методу Refresh).

· EInvalidPointer - відбувається при спробі звільнення вже звільненого чи ще неиніційованого покажчика, при виклику Dispose(), FreeMem() чи деструктора класу.

· EListError - викликається при звертанні до елемента спадкоємця TList по індексу, що виходить за межі припустимих значень (наприклад, об'єкт TStringList містить тільки 10 рядків, а відбувається звертання до одинадцятого).

· EMathError - предок виключень, що случаються при виконанні операцій із крапкою, що плаває.

· EInvalidOp - відбувається, коли математичному співпроцесору передається помилкова інструкція. Таке виключення не буде до кінця оброблено, поки Ви контролюєте співпроцесор прямо з ассемблерного коду.

· EOverflow - відбувається як результат переповнення операцій із крапкою, що плаває, при занадто великих величинах. Відповідає RunTime Error 205.

· Underflow - відбувається як результат переповнення операцій із крапкою, що плаває, при занадто малих величинах. Відповідає RunTime Error 206.

· EZeroDivide - викликається в результаті розподілу на нуль.

· EMenuError - викликається у випадку будь-яких помилок при роботі з пунктами меню для компонентів TMenu, TMenuItem, TPopupMenu і їхніх спадкоємців.

· EOutlineError - викликається у випадку будь-яких помилок при роботі з TOutLine і будь-якими його спадкоємцями.

· EOutOfMemory - відбувається у випадку викликів New(), GetMem() чи конструкторів класів при неможливості розподілу пам'яті. Відповідає RunTime Error 203.

· EOutOfResources - відбувається в тому випадку, коли неможливе виконання запиту на чи виділення заповнення тих чи інших Windows ресурсів (наприклад таких, як оброблювачі - handles).

· EParserError - викликається коли Delphi не може зробити розбір і переклад тексту опису форми в двійковий вид (часто відбувається у випадку виправлення тексту опису форми вручну в IDE Delphi).

· EPrinter - викликається у випадку будь-яких помилок при роботі з принтером.

· EProcessorException - предок виключень, викликуваних у випадку переривання процесора- hardware breakpoint. Ніколи не включається в DLL, може оброблятися тільки в “цільному” додатку.

· EBreakpoint - викликається у випадку останова на крапці переривання при налагодженні в IDE Delphi. Середовище Delphi обробляє це виключення самостійно.

· EFault - предок виключень, викликуваних у випадку неможливості обробки процесором тих чи інших операцій.

  • EGPFault - викликається, коли відбувається “загальне порушення захисту” - General Protection Fault. Відповідає RunTime Error 216.
  • EInvalidOpCode - викликається, коли процесор намагається виконати неприпустимі інструкції.
  • EPageFault - звичайно відбувається як результат помилки менеджера пам'яті Windows, унаслідок деяких помилок у коді Вашого додатка. Після такого виключення рекомендується запустити знову Windows.
  • EStackFault - відбувається при помилках роботи зі стеком, часто внаслідок некоректних спроб доступу до стеку з фрагментів коду на ассемблері. Компіляція Ваших програм із включеною перевіркою роботи зі стеком {$S+} допомагає відстежити такого роду помилки.

· ESingleStep - аналогічно EBreakpoint, це виключення відбувається при покроковому виконанні додатка в IDE Delphi, що сама його й обробляє.

· EPropertyError - викликається у випадку помилок у редакторах властивостей, що вбудовуються в IDE Delphi. Має велике значення для написання надійних property editors. Визначений у модулі DsgnIntf.pas.

· EResNotFound- відбувається у випадку тих чи інших проблем, що мають місце при спробі завантаження ресурсів форм - файлів .DFM у режимі дизайнера. Часто причиною таких виключень буває порушення відповідності між визначенням класу форми і її описом на рівні ресурсу (наприклад,унаслідок зміни порядку проходження заслань-полів-посилань на компоненти, вставлені у форму в режимі дизайнера).

· EStreamError - предок виключень, викликуваних при роботі з потоками.

· EFCreateError- відбувається у випадку помилок створення потоку (наприклад, при некоректному завданні файлу потоку).

· EFilerError - викликається при спробі вторинної реєстрації вже зареєстрованого класу (компоненти). Є, також, предком спеціалізованих оброблювачів виключень, що виникають при роботі з класами компонентів.

· EClassNotFound- звичайно відбувається, коли в описі класу форми вилучене заслання-стать-посилання на компонент, вставлений у форму в режимі дизайнера. Викликається, на відміну від EResNotFound, у RunTime.

· EInvalidImage- викликається при спробі читання файлу, що не є ресурсом, чи зруйнованого файлу ресурсу, спеціалізованими функціями читання ресурсів (наприклад, функцією ReadComponent).

· EMethodNotFound- аналогічно EClassNotFound, тільки при невідповідності методів, зв'язаних з тими чи іншими оброблювачами подій.

· EReadError- відбувається в тому випадку, коли неможливо прочитати значення чи властивості іншого набору байт із потоку (у тому числі ресурсу).

· EFOpenError- викликається коли той чи інший специфікований потік не може бути відкритий (наприклад, коли потік не існує).

· EStringListError - відбувається при помилках роботи з об'єктом TStringList (крім помилок, оброблюваних TListError).


3.4.1 Виключення, що виникають при роботі з базами даних

Delphi, володіючи прекрасними засобами доступу до даних, що ґрунтуються на інтерфейсі IDAPI, реалізованої у виді бібліотеки Borland Database Engine (BDE), включає ряд оброблювачів виняткових ситуацій для реєстрації помилок у компонентах VCL працюючим із БД. Дамо коротку характеристику основним з них:

· EDatabaseError - спадкоємець Exception ; відбувається при помилках доступу до даних у компонентах-спадкоємцях TDataSet. Оголошено в модулі DB. Нижче приведений приклад з Delphi On-line Help, присвячений цьому виключенню:

· EDBEngineError - спадкоємець EDatabaseError ; викликається, коли відбуваються помилки BDE чи на сервері БД. Оголошено в модулі DB:

Особливо важливі дві властивості класу EDBEngineError :

Errors - список усіх помилок, що знаходяться в стеці помилок BDE. Індекс першої помилки 0;

ErrorCount - кількість помилок у стеці.

Об'єкти, що містяться в Errors, мають тип TDBError. Доступні властивості класу TDBError:

ErrorCode - код помилки, що повертається Borland Database Engine;

Category - категорія помилки, описаної в ErrorCode;

SubCode - ‘субкод’ помилки з ErrorCode;

NativeError - помилка, що повертається сервером БД. Якщо NativeError 0, то помилка в ErrorCode не від сервера;

Message - повідомлення, передане сервером, якщо NativeError не дорівнює 0; повідомлення BDE - у противному випадку.

· EDBEditError - спадкоємець Exception ; викликається, коли дані не сумісні з маскою введення, накладеної на поле. Оголошено в модулі Mask.





©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.