русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Винятки (exception) в Object Pascal: призначення, виникнення, опрацювання.


Дата добавления: 2015-07-09; просмотров: 636; Нарушение авторских прав


Клас Exception є прямим нащадком базового класу TObject. Разом зі своїми нащадками він призначений для обробки виняткових ситуацій (виключень), що виникають при некоректні дії програми: наприклад, у разі поділу на нуль, при спробі відкрити неіснуючий файл, при виході за межі виділеної області динамічної пам'яті і т. п. У цьому розділі розглядаються основні властивості виключень і їх використання для підвищення надійності програм.

Для обробки виключень в Object Pascal передбачений механізм захищеного блоку:

Try … except … end; try … finally … end;

Існують два типи захищених блоків - except і finally що відрізняються способом обробки виключення. У блоці except спочатку виконуються оператори секції try ... except, якщо оператори виконані без виникнення виняткової ситуації, робота захищеного блоку на цьому припиняється, і управління отримує оператор, що стоїть за end, якщо при виконанні частини try виник виняток, управління отримує відповідний обробник у секції except. У блоці finally оператори отримують управління завжди, незалежно від того, чи виникло виняток у секції try … finally чи ні.
Обробники винятків у блоці, окрім мають такий синтаксис:
on <клас винятку> do <оператор>; Тут, do - зарезервовані слова; <клас винятку>-клас обробки виключення <оператор> - будь-який оператор OP.

 

37. Оператор захищеного коду tryfinallyend: призначення, алгоритм виконання.

Часто бувають випадки, коли в програмі має виконатися певна частина коду, незважаючи на те, що виконується до неї код може бути перерваний внаслідок виникнення виняткової ситуації. Наприклад, коли операція захоплює ресурс, дуже часто буває важливим звільнення даного ресурсу, незалежно від того, чи була чергова операція завершена нормально, чи ні. У таких випадках ви можете використовувати оператор try … finally … end;



В наступному прикладі показаний код, який здійснює відкриття та обробку файлу, який гарантує, що файл буде закритий, навіть якщо під час його обробки виникла помилка:
Reset(F);

try ... // Обробка файлу F

finally

CloseFile(F);

end;

Синтаксис оператора try..finally

try Набір_операторов_1

finally Набір_операторов_2

end;

38. Оператор захищеного коду tryexceptend: призначення, алгоритм виконання.

Оператор try ... except має вигляд:

try

оператори;

except

блок обробки виключень;

end;

Блок try називається захисним блоком. Якщо при виконанні програми в ньому відбувається помилка, то він завершується і виконання передається блоку except. Якщо виключення обробляється в блоці, за винятком, то після його обробки програма продовжує виконуватися з оператора, наступного після try … except … end; Якщо виключення залишається необробленим і є осяжний блок try, то виконання передається його блоку exeption. Якщо осяжного блоку try немає, то програма завершується з помилкою. Нарешті, якщо в блоці try помилки не відбулося, то блок except ігнорується і виконання програми продовжується далі.

Блок обробки виключень є або послідовність операторів, розділених крапкою з комою, або послідовність обробників виключень вигляду:

on імя: тип do оператор.

 

39. Розпізнавання та опрацювання винятків, оператор ondo … [else …].

Клас Exception є прямим нащадком базового класу TObject. Разом зі своїми нащадками він призначений для обробки виняткових ситуацій (виключень), що виникають при некоректні дії програми: наприклад, у разі поділу на нуль, при спробі відкрити неіснуючий файл, при виході за межі виділеної області динамічної пам'яті і т. п. У цьому розділі розглядаються основні властивості виключень і їх використання для підвищення надійності програм.

Для обробки виключень в Object Pascal передбачений механізм захищеного блоку:

Try … except … end; try … finally … end;

Обробники винятків у блоці, окрім мають такий синтаксис:
on <клас винятку> do <оператор>; Тут, do - зарезервовані слова; <клас винятку>-клас обробки виключення <оператор> - будь-який оператор Object Pascal, крім оператора передачі управління goto мітку поза блоком except.

on EZD: EZeroDivide do EZD.Message := 'Ділення на нуль!';

on System.FormatException do
writeln('Невірний формат введення');
else writeln('Інакше виключення');

 



<== предыдущая лекция | следующая лекция ==>
 | Оголошення власного класу винятків, створення винятку.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.143 сек.