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


Автор: Medved 6.11.2004, 15:58
Давайте поговорим о глобальной обработки ошибок. Ее приемущества, недостатки, как ее осуществлять и т.д.?

Автор: Medved 6.11.2004, 20:15
Кто-нибудь знает, как правильно реализовывать глобальную обработку ошибок?

Автор: Alex 6.11.2004, 20:52
Для организации глобального отлова всех необработанных ошибок я пользуюсь событием OnException компонента TApplication

Автор: Medved 6.11.2004, 20:55
Я тоже, но есть какие-то ньюнсы ее реализации?

Автор: Alex 6.11.2004, 21:05
ну, особых нюансов у меня нет если только то, что мне лениво в каждом новом проекте класть компонент и настраивать его заново, поэтому у меня есть модуль, который копируется в каждый новый проект.

А вот собственно и мой шаблон

Код

uses
 Classes, Forms, SysUtils, Appevnts;

type
 TerrGl = class(TObject)
   ap: TApplicationEvents;

   constructor Create;
   destructor Destroy; override;

   procedure LogException(Sender: TObject; E: Exception);
end;

var
 errGl: TerrGl;

implementation

{ TerrGl }
// Отлов ошибок /////////////////////////////////////////////////////
constructor TerrGl.Create;
begin
 inherited;
 ap:= TApplicationEvents.Create(nil);
 ap.OnException:= LogException;
end;

destructor TerrGl.Destroy;
begin
 FreeAndNil(ap);
end;

procedure TerrGl.LogException(Sender: TObject; E: Exception);
begin
 try
    ....
    Здесь запись в лог
    ....
     Application.ShowException(E);
   finally
     Free;
   end;
   
 except on e:Exception do
   Application.ShowException(E);
 end;
end;
/////////////////////////////////////////////////////////////////////

initialization
 errGl:= TerrGl.Create;

finalization
 if Assigned(errGl) then FreeAndNil(errGl);

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