Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


среда, 26 ноября 2008 г.

on E:EDatabaseError do not raise E! Ключ - просто raise

Только что пытался реализовать в Delphi 6 конструкцию:
procedure _ExecuteQuery(aQuery:TpFIBQuery; aExceptionText:string='');
begin
  try
    aQuery.ExecQuery;
  except
    on E:EDatabaseError do
    begin
      E.Message := aExceptionText + E.Message;
      raise E;
    end;
  end; // я так понимаю, E.destroy происходит здесь?
end;
И ничего хорошего не получилось. Общий обработчик Application.OnException начал получать пустое исключение с E.Message = ‘’. Начал писать вопрос на Vingrad Forum. Пока писал, вспомнил, что для перевозбуждения последнего исключения не обязательно явно указывать это исключение. Попробовал вместо “raise E;” вызвать просто “raise;” - всё заработало.

Я так понимаю что деструктор исключения вызывается в конце блока except .. end.

Ссылка по теме:

Комментариев нет:

Отправить комментарий

Постоянные читатели