На этом шаге мы приведем иерархию исключений.
Все имеющиеся в Delphi классы исключений являются наследниками класса Exception, объявленного в модуле SysUtils, наследника TObject. Приведем фрагмент иерархии наследников класса Exception.
Имя класса | Объяснениe |
---|---|
Exception | Базовый класс исключений. |
EAbort | "Молчаливое" исключение, предназначенное для намеренного прерывания вычислений и быстрого выхода из глубоко вложенных процедур и функций. Генерируется процедурой Abort. |
EArrayError | Ошибка манипулирования с потомками класса TBaseArray: использование ошибочного индекса элемента массива, добавление слишком большого числа элементов в массив фиксированной длины, попытка вставки элемента в отсортированный массив. |
EControlC | Нажатие клавиш Ctrl+C при выполнении консольного приложения. При обработке этого исключения можно выдать запрос пользователю, действительно ли он хочет прервать работу, и предпринять действия в зависимости от ответа. |
EConvertError | Ошибка преобразования строк или объектов (в частности, в функциях StrToInt, StrToFloat, StrToDate). |
EDatabaseError | Ошибка работы с базами данных. |
EDateTimeError | Ошибка ввода даты или времени в компоненте TDateTimePicker. |
EDBEditError | Ошибка при попытке приложения использовать данные, не соответствующие заданной маске поля. |
EExternalException | Неизвестный код исключения. |
EInOutError | Ошибка ввода/вывода из файла. Поле ErrorCode содержит информацию о конкретном виде ошибки. |
EDivByZero | Попытка целочисленного деления на нуль. |
ERangeError | Целочисленное значение или индекс вне допустимого диапазона. |
EIntOverflow | Переполнение при операциях с целыми числами. |
EOverflow | Переполнение регистра при операциях с плавающей запятой. |
EZeroDivide | Деление на нуль числа с плавающей запятой. |
EPrinter | Ошибка печати (использование несуществующего принтера, задание не может быть послано на принтер). |
EPropertyError | Ошибка при задании значения свойства. |
В классе Exception объявлено два свойства:
Значение свойства Message может определяться пользователем в процессе генерации исключений при использовании соответствующего конструктора исключений.
На следующем шаге мы познакомимся с конструкторами исключений.