32 Урока Borland Delphi



Урок 09 - часть 12


    • EMethodNotFound - аналогично EClassNotFound, только при несоответствии методов, связанных с теми или иными обработчиками событий.
      • EReadError - происходит в том случае, когда невозможно прочитать значение свойства или другого набора байт из потока (в том числе ресурса).
        • EFOpenError - вызывается когда тот или иной специфированный поток не может быть открыт (например, когда поток не существует).
        • EStringListError - происходит при ошибках работы с объектом TStringList (кроме ошибок, обрабатываемых TListError).

         
         
            1. Исключения, возникающие при работе с базами данных
            Delphi, обладая прекрасными средствами доступа к данным, основывающимися на интерфейсе IDAPI, реализованной в виде библиотеки Borland Database Engine (BDE), включает ряд обработчиков исключительных ситуаций для регистрации ошибок в компонентах VCL работающим с БД. Дадим краткую характеристику основным из них:
            • EDatabaseError - наследник Exception ; происходит при ошибках доступа к данным в компонентах-наследниках TDataSet. Объявлено в модуле DB. Ниже приведен пример из Delphi On-line Help, посвященный этому исключению:
            repeat {пока не откроем таблицу или не нажмем кнопку Cancel}

            try

            Table1.Active := True; {Пытаемся открыть таблицу}

            Break; { Если нет ошибки - прерваем цикл}

            except

            on EDatabaseError do

            {Если нажата OK - повторяем попытку открытия Table1}

            if MessageDlg('Не могу открыть Table1', mtError,

            [mbOK, mbCancel], 0) <> mrOK

            then

            raise;

            end;

            until False;

            • EDBEngineError - наследник EDatabaseError ; вызывается, когда происходят ошибки BDE или на сервере БД. Объявлено в модуле DB:
            EDBEngineError = class(EDatabaseError)

            private

            FErrors: TList;

            function GetError(Index: Integer): TDBError;

            function GetErrorCount: Integer;

            public

            constructor Create(ErrorCode: DBIResult);

            destructor Destroy;

            property ErrorCount: Integer;

            property Errors[Index: Integer]: TDBError;

            end;

            Особенно важны два свойства класса EDBEngineError :

            Errors - список всех ошибок, находящихся в стеке ошибок BDE. Индекс первой ошибки 0;




            Содержание  Назад  Вперед