Окно сообщения об исключении
Рисунок 9.2. Окно сообщения об исключении
Примечание
С объектами исключений нужно работать очень осторожно. Ни в коем случае самостоятельно не уничтожайте объекты исключения — это может привести к ошибке работы программы. После завершения обработки исключения 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.
- EldCanNotCreateMessagePart — потомок класса EldMessageException. Ошибка вызова конструктора класса TIdMessagePart.
- EIdClosedSocket — потомок класса EIdException. Попытка записи в закрытый ТСР-сокет.
- EIdConnClosedGracefully — потомок класса EIdSilentException. Возникает в случае успешного закрытия соединения.
- EIdCorruptServicesFile — потомок класса EIdException. Поврежден один из файлов SERVICES. Данные файлы располагаются на диске в разных местах, в зависимости от операционной системы:
- BSDUnix — /etc/;
- Windows 9x, Millenium — папка Windows;
- Windows NT — папка Windows/System32.
EIdCouldNotBindSocked — потомок класса EIdSockedHandleError. Ошибка привязки дескриптора сокета.
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.
EIdNNTPStringListNotInitialized — потомок класса EIdNNTPException. Неудачный поиск сообщения,
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 после смены режима.
EIdOSSLDataBindingError — потомок класса 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-прокси сообщает об ошибке.
EIdSocksServerHostUnreachableError — потомок класса EIdSocksError.Хост, запрашиваемый TCP-клиентом, недоступен.
EIdSocksServerNetUnreachableError — потомок класса EIdSocksError.Сеть недоступна.
EIdSocksServerPermissionError — потомок класса EIdSocksError. Запрашиваемое соединение не поддерживается набором правил.
EIdSocksServerRespondError — потомок класса EIdSocksError. Socks-прокси не отвечает на запросы TCP-клиента.
EIdSocksServerTTLExpiredError — потомок класса EIdSocksError. Хост не может быть доступным, т. к. превышен TTL.
EIdSocksUnknownError — потомок класса EdSocksError. Неизвестная ошибка.
EIdStackCanNotLoadWinsock — потомок класса EldException. Невозможно получить данные из сокета.
EIdstackError — потомок класса EIdException. Базовый класс для ошибок стека протокола Indy.
EIdStackInitializationFailed — потомок класса EIdStackError. Ошибка инициализации стека протокола.
EIdStackSetSizeExceeded — потомок класса EIdStackError. Превышено максимально возможное число дескрипторов сокетов.
EIdTableNotFound — потомок класса EIdException. Неверное преобразование символов с использованием кодовой таблицы.
EIdTCPConnectionError — потомок класса EIdException. Базовый класс ошибок TCP-соединений.
EIdTCPServerError — потомок класса EIdException. Базовый класс ошибок TCP-сервера.
EIdTelnetClientConnectError —потомок класса EIdTelnetError. Ошибка соединения с Telnet-сервером.
EIdTelnetError — потомок класса EIdException. Базовый класс ошибок Indy Telnet.
EIdTelnetServerException — потомок класса EIdException. Базовый класс ошибок Telnet-сервера.
EIdTelnetServerOnDataAvailabielsNil — потомок класса EIdTelnetError. Неверная попытка выполнения метода TIdTelnet.DoOnDataAvailable.
EIdTextInvalidCount — потомок класса EIdMessageException. Ошибка при создании текстового сообщения.
EIdTFTPAccessViolation — потомок класса EIdTFTPException. Доступ к FTP запрещен. EIdTFTPAllocationExceeded — потомок класса EIdTFTPException. Превышение распределений.
EIdTFTPException — потомок класса EIdException. Базовый класс для исключений Trivial FTP.
EIdTFTPFileAlreadyExists — потомок класса EIdTFTPException. Попытка создания уже существующего файла.
EIdTFTPFileNotFound — потомок класса EIdTFTPException. Файл не найден.
EIdTFTPIllegalOperation — потомок класса EIdTFTPException. Неправильная FTP-операция.
EIdTFTPNoSuchUser — потомок класса EIdTFTPException. Ошибка проверки имени пользователя и пароля.
EIdTFTPOptionNegotiationFailed — потомок класса EIdTFTPException. Неверный выбор согласования FTP.
EIdTFTPUnknownTransferID — потомок класса EIdTFTPException. Нeизвестный идентификатор передачи данных.
EIdThreadClassNotSpecified — является потомком класса EIdThreadMgrError. Попытка создания нового потока без указания имени класса.
EIdThreadMgrError — потомок класса EIdException. Базовый класс для ошибок Indy Thread Manager.
EIdTunnelConnectToMasterFailed — потомок класса EIdTunnelException. Невозможно соединение подчиненного и главного туннелей.
EIdTunnelCRCFailed — потомок класса EIdTunnelException. Неверное вычисление CRC.
EIdTunnelCustomMessageInterpretationFailure — потомок класса EIdTunnelException. Подчиненный поток получил сообщение неизвестного типа.
EIdTunnelDontAllowConnections — потомок класса EIdTunnelException.Подчиненный поток не может установить соединение.
EIdTunnelException — потомок класса EIdException. Базовый класс для ошибок Indy Tunnel.
EIdTunnelInterpretationOfMessageFailed — является потомком класса EIdTunnelException. Ошибка интерпретации сообщения от подчиненного потока.
EIdTunnelMessageHandlingFailed — является потомком класса EIdTunnelException. Подчиненным потоком получено неправильное сообщение.
EIdTunnelMessageTypeRecognitionError — является потомком класса EIdTunnelException. Неизвестный тип сообщения.
EIdTunnelTransformError — потомок класса EIdTunnelException. Ошибка преобразования данных при туннельном соединении.
EIdTunnelTransformErrorBeforeSend — является потомком класса EIdTunnelException. Ошибка преобразования данных до их отправки.
EIdUDPException — потомок класса EIdException. Базовый класс для ошибок Indy UDP.
EIdUDPReceiveErrorZeroBytes — потомок класса EIdUDPException. Данные не были получены при установленном соединении.
EIdUDPServerException — потомок класса EIdUDPException. Базовый класс для ошибок Indy UDP-сервер.
EIniFileException — потомок класса Exception. Ошибка при работе с INI-файлами.
EInOutError — потомок класса Exception. Ошибка ввода/вывода. Коды ошибок ввода/вывода представлены в табл. 9.1.
Содержание раздела