Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > как работает ApplicationHandleException?


Автор: _hunter 15.9.2005, 13:30
добрый день.

интересует механизм работы этой процедуры.
получается в приложении паралельно работает два обработчика? -- один этот и один, мой -- в файле проекта?

( подробности тут:
http://forum.vingrad.ru/index.php?showtopic=64445
)

Автор: Rennigth 15.9.2005, 15:07
Код

procedure TApplication.HandleException(Sender: TObject);
begin
  if GetCapture <> 0 then SendMessage(GetCapture, WM_CANCELMODE, 0, 0);
  if ExceptObject is Exception then
  begin
    if not (ExceptObject is EAbort) then
      if Assigned(FOnException) then
        FOnException(Sender, Exception(ExceptObject))
      else
        ShowException(Exception(ExceptObject));
  end else
    SysUtils.ShowException(ExceptObject, ExceptAddr);
end;

Вызывается почти во всех except-ах в Forms, и если есть событие OnException то все хорошо и можно их самому обрабатывать, но! то что если FException нету то вызывается сразу ShowException, наплевав на внешние Try..exceptы мне кажется это не логично. smile

Автор: _hunter 15.9.2005, 15:23
понятно. придется исключениями туда-сюда кидаться... странно как-то это сделано...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)