Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Класи виняткових ситуацій

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Загальний клас виняткових ситуацій цілочисельний арифметики, від якого породжені класи EDivByZero, ERangeError і EIntOverflow. Загальний клас виняткових ситуацій речової математики, від якого породжені класи EInvalidOp, EZeroDivide, EOverflow і EUnderflow. Виняткова ситуація, що виникла за межами програми, наприклад в DLL-бібліотеці, розробленої на мові C + +. Як описуються класи виняткових… Читати ще >

Класи виняткових ситуацій (реферат, курсова, диплом, контрольна)

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

Класи виняткових ситуацій утворюють ієрархію, коренем якої є клас Exception. Клас Exception описує найзагальніший тип виняткових ситуацій, а його спадкоємці - конкретні види таких ситуацій (таблиця 1.1). Наприклад, клас EOutOfMemory породжений від Exception і описує ситуацію, коли вільна оперативна пам’ять вичерпана.

У наступній таблиці наведено стандартні класи виняткових ситуацій, оголошені в модулі SysUtils. Вони покривають практично весь спектр можливих помилок. Якщо їх все-таки виявиться недостатньо, ви можете оголосити нові класи виняткових ситуацій, породжені від класу Exception або його спадкоємців.

Таблиця 1.1 — Класи виняткових ситуацій.

Клас виняткових ситуацій.

Опис.

EAbort.

" Мовчазна" виняткова ситуація, яка використовується для виходу з декількох рівнів вкладених блоків або підпрограм. При цьому на екран не видається ніяких повідомлень про помилку. Для генерації виключної ситуації класу EAbort потрібно викликати стандартну процедуру Abort.

EInOutError.

Помилка доступу до файлу або пристрою введення-виведення. Код помилки міститься в поле ErrorCode.

EExternal.

Виняткова ситуація, що виникла поза програмою, наприклад, в операційній системі.

EExternalException.

Виняткова ситуація, що виникла за межами програми, наприклад в DLL-бібліотеці, розробленої на мові C + +.

EHeapException.

Загальний клас виняткових ситуацій, що виникають при роботі з динамічною пам’яттю. Є базовим для класів EOutOfMemory і EInvalidPointer. Увага! Створення виняткових ситуацій цього класу (і всіх його нащадків) повністю бере на себе середовище Delphi, тому ніколи не створюйте такі виняткові ситуації за допомогою оператора raise.

EOutOfMemory.

Вільна оперативна пам’ять вичерпана (див. EHeadException).

EInvalidPointer.

Спроба звільнити недійсний вказівник (див. EHeadException). Зазвичай це означає, що покажчик вже звільнений.

EIntError.

Загальний клас виняткових ситуацій цілочисельний арифметики, від якого породжені класи EDivByZero, ERangeError і EIntOverflow.

EDivByZero.

Спроба ділення цілого числа на нуль.

ERangeError.

Вихід за межі діапазону цілого числа або результату цілочисельного виразу.

EIntOverflow.

Переповнення в результаті целочисленной операції.

EMathError.

Загальний клас виняткових ситуацій речової математики, від якого породжені класи EInvalidOp, EZeroDivide, EOverflow і EUnderflow.

EInvalidOp.

Невірний код операції речової математики.

EZeroDivide.

Спроба ділення дійсного числа на нуль.

EOverflow.

Втрата старших розрядів дійсного числа в результаті переповнення розрядної сітки.

EUnderflow.

Втрата молодших розрядів дійсного числа в результаті переповнення розрядної сітки.

EInvalidCast.

Невдала спроба приведення об'єкта до іншого класу за допомогою оператора as.

EConvertError.

Помилка перетворення даних за допомогою функцій IntToStr, StrToInt, StrToFloat, StrToDateTime.

EAccessViolation.

Додаток здійснило доступ до невірного адресою в пам’яті. Зазвичай це означає, що програма звернулася за даними по неініціалізованих вказівником.

EPrivilege.

Спроба виконати привілейовану інструкцію процесора, на яку програма не має права.

EStackOverflow.

Стек програми не може бути більше збільшений.

EControlC.

Під час роботи консольного застосування користувач натиснув комбінацію клавіш Ctrl + C.

EAssertionFailed.

Виникає при виклику процедури Assert, коли перший параметр дорівнює значенню False.

EPackageError.

Проблема під час завантаження та ініціалізації бібліотеки компонентів.

EOSError.

Виняткова ситуація, що виникла в операційній системі.

Спадкування класів дозволяє створювати сімейства родинних виняткових ситуацій. Прикладом такого сімейства є класи виняткових ситуацій речової математики, які оголошені в модулі SysUtils наступним чином.

type.

EMathError = class (Exception);

EInvalidOp = class (EMathError);

EZeroDivide = class (EMathError);

EOverflow = class (EMathError);

EUnderflow = class (EMathError);

Клас виняткових ситуацій EMathError є базовим для класів EInvalidOp, EZeroDivide, EOverflow і EUnderflow, тому, обробляючи виняткові ситуації класу EMathError, ви будете обробляти всі помилки речової математики, включаючи EInvalidOp, EZeroDivide, EOverflow і EUnderflow.

Неважко помітити, що імена класів винятків починаються з букви E (Від слова Exception). Цього правила корисно дотримуватися при оголошенні власних класів винятків, наприклад:

type.

EMyException = class (Exception).

MyErrorCode: Integer;

end;

Як описуються класи виняткових ситуацій зрозуміло, розглянемо тепер, як такі ситуації обробляються.

Показати весь текст
Заповнити форму поточною роботою