Примечание С объектами исключений нужно работать очень осторожно. Ни в коем случае самостоятельно не уничтожайте объекты исключения — это может привести к ошибке работы программы. После завершения обработки исключения Kylix самостоятельно позаботится об его уничтожении.
Рассмотрим теперь классы исключений. Они необходимы для обработки конкретных исключительных ситуаций. Мы представляем классы исключений не в иерархии, а в алфавитном порядке.
Exception — базовый класс исключений. Все другие классы исключений являются прямыми или косвенными потомками данного класса.
EAbort — потомок класса Exception. Данный класс исключения не отображает диалогового окна ошибки при возникновении исключения. Простейшим способом генерации данного исключения является вызов метода Abort.
EAbstarctError — потомок класса Exception. Генерируется при попытке вызова абстрактного метода.
EAccessViolation — потомок класса EExternal. Генерируется при неверной работе с памятью.
EAssertionFailed — потомок класса Exception. Класс исключения, генерируемый в случае ошибки при проверке истинности с помощью процедуры Assert. Данное исключение возникает, только если включена директива компилятора Kylix $ASSERTION ON.
EBcdException — потомок класса Exception. Базовый класс при работе со значениями типа BCD (Binary code decimal). Генерируется обычно в случае ошибки при попытке преобразования типа Variant или String в BCD.
EBcdOverflowException — потомок класса EBcdException. Генерируется при невозможности преобразования типа Variant в BCD с требуемым количеством символов после запятой.
EBitsError — потомок класса Exception. Генерируется при ошибке доступа к массиву булевых значений.
EClassNotFound — потомок класса EFilerError. Генерируется при невозможности найти определенный компонент при чтении из потока.
EComponentError — потомок класса Exception. Возникает при ошибке регистрации или переименования компонента.
EConvertError — потомок класса Exception. Генерируется при ошибке преобразования строк или объектов.
EDatabaseError — потомок класса Exception. Базовый класс для всех ошибок при работе с базами данных.
EDateTimeError — потомок классаECommonCalendarError. Возникает при неправильном вводе даты или времени пользователем в компонент TdateTimePicker.
EDbcClient — потомок класса EDatabaseError. Генерируется в случае ошибки при работе с набором данных клиента базы данных.
EDBEditError — потомок класса Exception. Возникает в случае попытки помещения данных в поле, которые не являются совместимыми с заданной маской поля.
EDivByZero — потомок класса EIntError. Возникает при ошибке целочисленного деления на ноль. При делении на ноль чисел с плавающей запятой возникает другое исключение EZeroDivide (см. ниже).
EDSWriter — потомок класса Exception. Ошибка при попытке создания пакета данных из набора данных.
EExternal — потомок класса Exception. Базовый класс для всех ошибок, происходящих вне приложения во время его выполнения.
EExternalException — потомок класса EExternal. Исключение с нераспознаваемым кодом.
EFCreateError — потомок класса EStreamError. Неудачная попытка создания нового файла. Например, неправильное имя файла или если файл с таким именем уже существует.
EFilerError — потомок класса EStreamError. Попытка повторной регистрации класса.
EFOpenError — потомок класса EStreamError. Невозможно открыть требуемый файл. Файл не найден или не существует заданного пути к файлу.
EHandleComponentException — потомок классаException. Невозможно получить дескриптор окна.
EHeapException — потомок класса Exception. Класс исключения для ошибок, связанных с кучами распределения памяти.
EIdAcceptWaitCannotBeModifiedWhileServerlsActive — потомок классаEIdTCPServerError.Возникает, когда свойство TIdTCPServer.AcceptWait изменяет свое значение при активном TCP-сервере.
EIdAlreadyConnected — потомок класса EIdException. Попытка создать соединение с компонентом Indy, когда оно уже существует.
EIdCanNotChangeTarget — потомок классаEIdException. Попытка установки свойства TIdLogDebug. Target в то время, когда свойство TIdLogDebug.Active имеет значение true.
EIdClosedSocket — потомок класса EIdException. Попытка записи в закрытый ТСР-сокет.
EIdConnClosedGracefully — потомок классаEIdSilentException. Возникает в случае успешного закрытия соединения.
EIdCorruptServicesFile — потомок классаEIdException. Поврежден один из файлов SERVICES. Данные файлы располагаются на диске в разных местах, в зависимости от операционной системы:
EIdDnsResolverError — потомок класса EIdException. Ошибка класса TIdDnsResolver.
EIdTunnelConnectToMasterFailed — пототмок класса EIdTunnelException. Данное исключение генерируется автоматически при ошибке туннельного соединения.
EIdException — потомок класса Exception. Базовый класс исключений для Indy-компонентов. Компоненты Indy не используют стандартные исключения.
EIdFailedToRetreiveTimeZoneInfo — потомок класса EIdException. Данные о временной зоне не могут быть получены текущим пользователем системы.
EIdFTPFileAlreadyExists — потомок классаEidException. Файл не может быть перезаписан с помощью запроса FTP Get.
EIdHTTPCannotSwitchSessionStateWhenActive — потомок классаEIdHTTPServerError. Невозможно изменить состояние активного HTTP-сервера.
EIdHTTPErrorParsingCommand — потомок класса EIdHTTPServerError. Неизвестная HTTP-команда.
EIdHTTPHeaderAlreadyWritten — потомок классаEIdHTTPServerError.Заголовок HTTP-документа уже существует.
EIdHTTPServerError — потомок класса EIdException. Базовый класс для всех HTTP-исключений в Indy.
EIdHTTPUnsopportedAuthorisationScheme — потомок класса EIdHTTPServerError. Неподдерживаемый формат имени пользователя и пароля для идентификации на HTTP-сервере.
EIdIcmpException — потомок класса EIdException. Исключение для всех ICMP-компонентов.
EIdInterceptPropInvalid — потомок классаEIdTCPConnectionError.Попытка использования возможностей, не поддерживаемых текущим классом TIdConnectionIntercept, который ассоциирован со свойством Intercept.
EIdInterceptPropIsNil — потомок классаEIdTCPConnectionError. Попытка установкиInterceptEnabled в true вто время, когда Intercept имеет значение Nil.
EIdInvalidServiceName — потомок класса EIdException. Неправильное имя сервиса.
EIdInvalidSocked — потомок класса EIdException. Неожиданное закрытие соединения.
EIdLoginException — потомок классаEIdTelnetServerException. Ошибка при соединении с Telnet-сервером.
EIdMaxLoginAttempt — потомок классаEIdLoginException. Исчерпан лимит подключений к Telnet-серверу. Максимальное число подключений указывается в свойстве TIdTelnetServer.LoginAttempts.
EIdMessageException — потомок класса EIdException. Базовый класс для исключений Indy, которые отображают сообщения об ошибке.
EIdMoreThanOneTIdAntiFreeze — потомок класса EIdException. Попытка создания более одного компонента TIdAntiFreeze в вашем приложении. Приложению не требуется больше одного такого компонента.
EIdNNTPConnectionRefused — потомок класса EIdProtocolReplyError. Отказ соединения с NNTP-сервером.
EIdNNTPException — потомок класса EIdException. Базовый класс всех NNTP-исключений.
EIdNNTPNoOnNewGroupsList — потомок классаEIdNNTPException. Ошибка поиска в новом списке Newsgroups.
EIdNNTPNoOnNewNewsList — потомок классаEIdNNTPException. Ошибка поиска в новом списке сообщений NNTP.
EIdNNTPNoOnNewsgroupList — потомок классаEIdNNTPException. Ошибка поиска в новом списке Newsgroups.
EIdNoBindingsSpecified — потомок класса EIdUDPServerException. Попытка UDP-сервера инициализировать дескриптор сокета, но номер порта при этом не был задан.
EIdNoDataToRead — потомок класса EIdTCPConnectionError. Попытка записи с помощью вызова метода WriteStream пустого потока Tstream.
EIdNoExecuteSpecified — потомок класса EIdTCPConnectionError. Heудачное выполнение процесса, имеющего равный приоритет с вашим приложением.
EIdNoOnAuthentication — потомок класса EIdTelnetServerException. У компонента TIdTelnetserver не определен обработчик события OnAuthentication.
EIdNotAHBytessent — потомок класса EIdSocketHandleError. Передача данных не завершена. Были отправлены не все байты.
EIdNotEnoughDataInBuffer — потомок классаEIdTCPConnectionError.Не достаточно байтов во внутреннем буфере компонента TIdTCPConnection.
EIdObjectTypeNotSupported — потомок классаEIdTCPConnectionError. Не поддерживаемый типобъектаTStream или TStrings.
EIdOpenSSLError — потомок класса EIdException. Класс-предок для всех классов исключений Open SSL.
EIdOpenSSLLoadError — потомок класса EIdOpenSSLError. Базовый класс ошибок загрузки библиотеки Open SSL.
EIdOSSLAcceptError — потомок класса EIdOpenSSLError. Новое SSL-соединение не доступно.
EIdOSSLConnectError — потомок класса EIdOpenSSLError. Ошибка SSL-соединения.
EIdOSSLCouldNotLoadSSLLibrary — потомок классаEIdOpenSSLLoadError. Невозможно загрузить библиотеку Open SSL.
EIdOSSLCreatingContextError — потомок класса EIdOpenSSLError.Ошибка преобразования содержания SSL после смены режима.
EIdOSSLGetMethodError — потомок классаEIdOpenSSLError. КомпонентTIdSSLContext содержит значение неверного режима.
EIdOSSLLoadingCertError — потомок классаEIdOpenSSLLoadError.Файл-сертификат не может быть загружен после смены значения свойства Mode у компонента TIdSSLContext.
EIdOSSLLoadingKeyError — потомок классаEIdOpenSSLLoadError. Ключевой файл-сертификат не может быть загружен после смены значения свойства Mode у компонента TIdSSLContext.
EIdOSSLLoadingRootCertError — потомок классаEIdOpenSSLLoadError.Корневой файл-сертификат не может быть загружен после смены значения свойства Mode у компонента TIdSSLContext.
EIdOSSLModeNotSet — потомок класса EIdOpenSSLError. He назначен режим контекста SSL.
EIdOSSLSettingCipherError — потомок классаEIdOpenSSLError. Ошибка установки схемы шифрования SSL контекста после смены режима.
EIdPackageSizeTooBig — потомок класса EIdSocketHandleError. Неправильный размер пакета.
EIdProtocolReplyError — потомок класса EIdException. Ошибка протокола.
EIdResponceError — потомок класса EIdException. Ошибка ожидаемого ответа.
EIdSetSizeExceeded — потомок класса EIdException. Количество вызовов FD SET превысило максимум, поддерживаемый операционной системой.
EIdsilentException — потомок класса EIdException. Молчаливое исключение. Похоже на Eabort.
EIdSockedError — потомок класса EIdException. Ошибка сокета.
EIdSockedHandleError — потомок класса EIdException. Базовый класс для всех ошибок дескрипторов сокетов.
EIdSocksAutnError — потомок класса EIdsocksError. Ошибка идентификации пользователя на Socks-прокси.
EIdSocksAuthMetnodError — потомок класса EIdSocksError. Неправильный или неподдерживаемый метод идентификации пользователя на Socks-прокси.
EIdSocksError — потомок класса EIdException. Базовый класс исключений Socks при использовании метода TIdTCPClientConnect.
EIdSocksRequestFailed — потомок классаEIdSocksError. Socks-прокси отклонил или не распознал запрос от TCP-клиента.
EIdSocksRequestIdentFailed — потомок класса EIdSocksError. Идентификатор пользователя, полученный от TCP-клиента, не совпадает с идентификатором, представленным программой Ident Daemon, запущенной на компьютере пользователя.
EIdSocksRequestServerFailed — потомок классаEIdSocksError. Socks-прокси не может создать соединения, запрашиваемого TCP-клиентом.
EIdSocksServerAddressError — потомок классаEdSocksError. Socks-прокси не поддерживает тип адресации, который получен от TCP-клиента.
EIdSocksServerCoimandError — потомок классаEldSocksError. Socks-прокси не поддерживает команду, которая получена от TCP-клиента.
EIdSocksServerConnectionRefusedError — потомок классаEIdSocksError.Соединение, запрашиваемое TCP-сервером, было отклонено Socks-прокси.
EIdSocksServerGeneralError — потомок классаEIdSocksError. Socks-прокси сообщает об ошибке.