
Иерархия классов исключений в Delphi
Ниже приведена таблица иерархии некоторых предопределенных в Delphi
классов исключений с краткими пояснениями.
Exception
|
Базовый класс исключений
|
EAbort
|
“Молчаливое” исключение, предназначенное для намеренного прерывания вычислений и быстрого выхода из глубоко вложенных процедур и функций. Генерируется процедурой Abort. |
ЕАссessViolation |
Ошибочный доступ к памяти; генерируется при попытке разыменования нулевого указателя nil, попытке записи а кодовую страницу, попытке доступа к адресу вне памяти, распределенной приложению. |
EControlC
|
Нажатие пользователем клавиш Clrl-C при выполнении консольного приложения. При обработке этого исключения можно выдать запрос пользователю, действительно ли он хочет прервать работу, и предпринять действия в зависимости от его ответа. |
EConvertError
|
Ошибка преобразования строк или объектов (в частности, в функциях StrToInt,StrToFIoat,StrToDate). |
EDatabaseError |
Ошибка работы с базами данных. |
EDateTimeError
|
Ошибка ввода даты или времени в компоненте TDateTimePicker. |
EInOutError
|
Ошибка ввода-вывода из файла; поле errorcode содержит информацию о конкретном виде ошибки |
EIntError
|
Базовый класс исключений целочисленных математических операций (см. директивы компилятора {$I+} и {$I-} |
EDivByZero |
Попытка целочисленного деления на нуль. |
ERangeError
|
Целочисленное значение или индекс вне допустимого диапазона. |
EIntOverflow |
Переполнение при операции с целыми числами. |
EInvalidCast |
Ошибка преобразования типа объекта операцией as. |
EInvalidOperation
|
Ошибочная операция с компонентом; генерируется при попытке выполнить операцию, которая требует обработчика окна, над компонентом, не имеющем родителя (свойство Parent = nil). Это исключение также генерируется при выполнении операций перетаскивания формы (например, при попытке выполнить операцию Form1.ВеginDrag) . |
EInvalidPointer |
Ошибочная операция с указателем. |
EListError
|
Ошибка работы с объектом типа списка TStringList и TList: попытке сослаться на элемент с индексом вне допустимых пределов, попытке добавления дубликата строки в объект TStringList, в котором значение свойства Duplicates равно dupError, попытке вставить элемент в сортированный список, так как это может нарушить правильную последовательность элементов. |
EMathError
|
Базовый класс исключений операций с плавающей запятой; всегда генерируются только потомки этого исключения; обработка исключения EMathError может использоваться для перехвата всех исключений операций с плавающей запятой. |
EInvalidArgument
|
Недопустимое значение параметра при обращении к математической функции. |
EInvalidOp
|
Неопределенная операция с плавающей запятой: процессор наталкивается на неопределенную инструкцию, ошибочную операцию или переполняется стек процессора с плавающей запятой. |
EOverflow |
Переполнение регистра при операциях с плавающей запятой. |
EUnderflow
|
Потеря значащих разрядов при выполнении операции с плавающей запятой. |
EZeroDivide |
Деление на нуль числа с плавающей запятой. |
EMenuError |
Ошибка, связанная с элементами меню. |
EOutOfMemory
|
Неудачная попытка динамически выделить память; может генерироваться процедурой OutOfMemoryError. |
EPrinter
|
Ошибка печати; например, приложение пытается использовать принтер, которого нет, или задание по какой-то причине не может быть послано на принтер. |
EStackOverflow
|
Переполнение стека; размеры стека можно регулировать директивами компилятора {$М} |
EStream Error |
Базовый класс исключений ошибок потоков. |
EFCreateError
|
Ошибка создания файла; например, пользователь указал недопустимое имя файла или указанный файл уже существует и не может быть перезаписан, так как пользователь не обладает соответствующим уровнем доступа. |
EFOpenError |
Ошибка открытия файла. |
EFilerError |
Базовый класс исключений файловых потоков. |
EWin32Error
|
Ошибка Windows.
|