[РЕШЕНО] Обращение к исключению за пределами Try Except

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

[РЕШЕНО] Обращение к исключению за пределами Try Except

Сообщение Brainenjii » 27.09.2011 13:40:15

Пишу код:
Код: Выделить всё

program Project1;
uses
  sysutils;
Var
  aException: Exception;
begin
  aException := nil;
  Try
    Raise Exception.Create('Hello world');
  Except On E: Exception Do
    Begin
      aException := E;
      WriteLn('Message: ', aException.Message);
    End;
  End;
  WriteLn('Message: ', aException.Message);
end.

Возвращает:
~> /tmp/project1
Message: Hello world
Message:


Вопрос: куда пропадает Message? ^_^
Последний раз редактировалось Brainenjii 27.09.2011 14:55:00, всего редактировалось 2 раз(а).
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Тоже про Exception'ы

Сообщение Sergei I. Gorelkin » 27.09.2011 14:22:26

Объект исключения уничтожается при выходе из блока except. Если таки хочется его использовать после, то надо внутри блока except вызывать AcquireExceptionObject, а после пользования - Free.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Тоже про Exception'ы

Сообщение Brainenjii » 27.09.2011 14:26:44

Спасибо.
Но почему не поднимается Access Violation при обращении к уничтоженному объекту?
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: [РЕШЕНО] Тоже про Exception'ы

Сообщение Sergei I. Gorelkin » 27.09.2011 15:05:34

Менеджер памяти не отдает освобожденную память системе сразу же (в предположении, что она снова понадобится кому-то еще), поэтому память остается доступной.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru
cron