Fail (процедура)

Язык:
Русский
English

 Fail  (процедура)


Объявление

 Procedure Fail;

Режим

Real, Protected

Замечания

Процедура Fail, вызванная внутри конструктора заставляет его освободить динамический объект, который он только что распределил. Fail вызывается только в том случае, если одна из операций конструктора терпит неудачу.

Смотри также

Пример

Язык:
Русский
English


 { Пример программы для процедуры Fail }

{$F+}
function HeapFunc(Size : Word) : Integer;
begin
  HeapFunc := 1;   { Возвращает Nil, если вне кучи }
end;
{$F-}

type
  CharPtr = ^Char;
  BigString = object   { Хранит большие строки }
    Len : Word;
    Txt : CharPtr;
   constructor Init(Size : Word; Contents : CharPtr);
   procedure Show;
             ...
   destructor Done;
 end;

constructor BigString.Init(Size : Word; Contents : CharPtr);
begin
  Len := Size;
 GetMem(Txt, Size);
 if Txt = Nil then
    Fail;   { Выходим с сообщением об ошибке }
 Move(Contents^, Txt^, Size);
end;

destructor BigString.Done;
begin
 FreeMem(Txt, Len);
end;
Тэги: Fail
| G+
Код для вставки: :: :: :: ::
Поделиться: // //