Иерархия классов исключений в 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.
|
