AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Auf programmweite Exceptions reagieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf programmweite Exceptions reagieren

Ein Thema von Balu der Bär · begonnen am 11. Jul 2006 · letzter Beitrag vom 12. Jul 2006
Antwort Antwort
Balu der Bär
(Gast)

n/a Beiträge
 
#1

Auf programmweite Exceptions reagieren

  Alt 11. Jul 2006, 17:57
Moin,

kurze Frage da ich zu diesem Thema nicht mehr weiter weiß.

Ich hab ein Programm, mit mehreren Formularen. Sobald irgendwo eine Exception auftritt soll in eine Logdatei geschrieben werden.
Jetzt könnte ich natürlich auf jede Form ein TApplicationsEvents klatschen, und in deren OnException-Event reagieren. Bloß ist das eventuell etwas umständlich, da ich alles 5mal machen muss. Kennt jemand Alternativen wie man sowas machen könnte?

Danke euch,
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Auf programmweite Exeptions reagieren

  Alt 11. Jul 2006, 18:02
Was spricht denn gegen eine Klasse TExceptionLogger, die einzig auf das OnException-Event reagiert? Wenn du das Ding in eine eigene Unit tust an deren Ende so was anfügst, sollt es tun was du willst.
Delphi-Quellcode:
unit ExceptionLogger;

{...}

implementation

{...}

var
  Logger: TExceptionLogger;

initialization

  Logger := TExceptionLogger.Create;
  Application.OnException := Logger.LogException;

finalization
  
  Logger.Free;

end.
Da es im Programm ja eh nur eine Instanz von Application geben kann, führt das auch zu keinen Problemen
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#3

Re: Auf programmweite Exeptions reagieren

  Alt 11. Jul 2006, 18:20
Tatsache.

Danke dir, manchmal fehlt mir scheinbar der Klaps auf den Hinterkopf.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Auf programmweite Exeptions reagieren

  Alt 11. Jul 2006, 18:21
Zitat von Balu der Bär:
Danke dir, manchmal fehlt mir scheinbar der Klaps auf den Hinterkopf.
Kein Wunder, die haben ja alle Angst dabei ihre Hand zu verlieren
  Mit Zitat antworten Zitat
Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Auf programmweite Exeptions reagieren

  Alt 11. Jul 2006, 18:41
Das wäre eine Möglichkeit. Wenn du allerdings mit Kanonen auf Tauben schießen willst:
madExcept
Stefan Hueg
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#6

Re: Auf programmweite Exeptions reagieren

  Alt 12. Jul 2006, 10:04
Ok, ich habe es jetzt nach dem Modell von Dax gemacht. Klappt auch, die Exceptions werden abgefangen.

Hab ich aber sowas im Quellcode,
Delphi-Quellcode:
function GetSomeData(): PChar; stdcall; external '.\lib\data.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
data : String;
begin
 data := GetSomeData;
end;
und die DLL ist nicht in dem Ordner vorhanden, bekomme ich eine Fehlermeldung das die DLL nicht gefunden wurde, ich solle die Applikation doch neu installieren. Das heißt das die Exception irgendwie nicht abgefangen wird. Kann man da was machen?

@Stefan: Danke dir, aber das ist mir dann doch etwas zu ausführlich.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: Auf programmweite Exceptions reagieren

  Alt 12. Jul 2006, 10:26
Du musst dann die dll zur laufzeit einbinden.

Bei der Methode, wie du sie jetzt gerade praktiziert, kommt die Fehlermeldung, noch bevor die main-loop anfängt - du hast also absolut kinen einfluss darauf und kannst sie auch nit abfangen.

Das ist quasi wie .... vorne inner exe steht drin "ich brauch' dll xyz" der exe-loader sieht das, sieht dass sie nicht existiert und schmeisst dir den fehler annen kopf anstatt die exe zu laden
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz