Иллюстрированный самоучитель по Kylix
ac3ae3b5

Окно сообщения об исключении



Рисунок 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.


  • Содержание раздела