АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Классы исключительных ситуаций

Читайте также:
  1. Абстрактные классы.
  2. Ащита населения и территорий от чрезвычайных ситуаций природного характера (стихийных бедствий)
  3. Без-ть ИС.критерии инф.без-ти.классы без-ти ИС. Политика без-ти.
  4. Брэнды могут меняться, но 6 исключительных случаях и очень осторожно
  5. ГЛАВА 1. Обоснование логической связи практической деятельности с темой исследования ВКР с приведением конкретных правовых ситуаций
  6. Государственное управление в области защиты населения и территорий от чрезвычайных ситуаций
  7. ДЕВУШКИ (8-9 КЛАССЫ)
  8. Задание. Решение практических ситуаций по начислению и уплате единого налога при применении упрощенной системы налогообложения.
  9. Задание. Решение практических ситуаций по начислению и уплате единого сельскохозяйственного налога.
  10. Занятие 3. Возможности КонсультантПлюс для решения различных практических ситуаций
  11. Занятие 4. Возможности КонсультантПлюс для решения различных практических ситуаций (продолжение). Сохранение результатов работы
  12. Защита населения от чрезвычайных ситуаций природного и техногенного характера

Исключительные ситуации в языке Delphi описываются классами. Каждый класс соответствует определенному типу исключительных ситуаций. Когда в программе возникает исключительная ситуация, создается объект соответствующего класса, который переносит информацию об этой ситуации из места возникновения в место обработки.

 

Классы исключительных ситуаций образуют иерархию, корнем которой является класс Exception. Класс Exception описывает самый общий тип исключительных ситуаций, а его наследники – конкретные виды таких ситуаций. Например, класс EOutOfMemory порожден от Exception и описывает ситуацию, когда свободная оперативная память исчерпана.

 

Классы исключительных ситуаций в Delphi объявлены в модуле SysUtils. Они покрывают практически весь спектр возможных ошибок. Если их все-таки окажется недостаточно, можно объявить новые классы исключительных ситуаций, порожденные от класса Exception или его наследников.

 

EInOutError – ошибка доступа к файлу или устройству ввода-вывода. Код ошибки содержится в поле ErrorCode.

EExternal – исключительная ситуация, возникшая вне программы, например, в ОС.

EHeapException – общий класс исключительных ситуаций, возникающих при работе с динамической памятью. Является базовым для классов EOutOfMemory и EInvalidPointer. Создание исключительных ситуаций этого класса (и всех его потомков) полностью берет на себя среда Delphi, поэтому никогда не создавайте такие исключительные ситуации с помощью оператора raise.

EDivByZero – попытка деления целого числа на нуль.

EInvalidCast – неудачная попытка приведения объекта к другому классу с помощью оператора as.

EConvertError – ошибка преобразования данных с помощью функций IntToStr, StrToInt, StrToFloat, StrToDateTime.

EPrivilege – попытка выполнить привилегированную инструкцию процессора, на которую программа не имеет права.

EStack­Overflow –стек приложения не может быть больше увеличен.

 

Наследование классов позволяет создавать семейства родственных исключительных ситуаций. Примером такого семейства являются классы исключительных ситуаций вещественной математики, которые объявлены в модуле 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). Этого правила полезно придерживаться при объявлении собственных классов исключений.

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.002 сек.)