Почему повышение исключения не ограничивается классом исключения? - PullRequest
0 голосов
/ 24 октября 2018

Этот код Delphi компилируется и работает как положено.

program RaiseLabel;

uses FastMM4, Windows, StdCtrls;

function CreateLabel(const S: string): TLabel;
begin
  Result := TLabel.Create(nil);
  Result.Caption := S;
end;

begin
  try
    raise CreateLabel('Strange exception example');
  except
    on L: TLabel do begin
      MessageBox(0, PChar(L.Caption), 'TLabel', MB_OK);
    end;
  end;
end.

Мой вопрос заключается в том, почему обработка исключений не ограничивается созданием объекта исключения, являющегося потомком класса Exception.(Я использовал FastMM в режиме полной отладки, чтобы проверить, не вызывает ли эта программа утечки памяти - нет.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...