AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

probleme bei eigenem Exception-Objekt...

Ein Thema von heiopei · begonnen am 5. Jun 2006 · letzter Beitrag vom 6. Jun 2006
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#8

Re: probleme bei eigenem Exception-Objekt...

  Alt 6. Jun 2006, 13:29
Ich hab im Gunde die ExceptionBehandlung von Delphi genommen und etwas umgestaltet/erweitert.

Unter Anderem initialisiert sich meine Exceptionbehandlung nur einmal (halt so ähnlich wie mein MemoryManager) und wenn diese von einem weiteren Modul (EXE und DLLs im selben Prozess) benötigt wird, dann initialisiert dieses Modul keine eigene Instanz davon, sondern nurtzt die bereits Vorhandene.

Die DelphiVersion erzeugt für jedes Modul eine eigene Instanz, wo z.B. beim initialisieren überall schon am Anfang ein OutOfMemory-Objekt erzeugt wird (wenn zuwenig Speicher vohanden ist, dann kann ja eventuell auch schon für dieses Ojkekt der Speicher nicht mehr ausreichen, also muß es schon vorher existieren, auch wenn es "hoffentlich" nie benötigt wird ... somit existieren in einem "StandardProgramm" mit mehreren DelphiModulen (EXE und/oder ein/mehrere DLLs, welche mit Delphi erstellt worden) auch mehrfach diese Exceptionbehandlungen und natürlich auch mehrere OutOfExceptionsobjekte und noch einiges mehr (was also "unnötig" im Speicher rumliegt).

Bei mir wird's in Zukunft (wenn alles mal richtig läuft) unter Anderem noch 'ne "Sparversion" davon geben denn wenn man ganz sicher weiß, daß in einer statisch geladenen DLL diese Exceptionbehandlung vorhanden ist, dann kann man ja auch diese verwenden und benötigt z.B. in der EXE keine eigenen mehr ... man könnte dann also in der sogar die ganzen Codes für eine eigene Exceptionbehandlung weglassen (spart dann nicht nur Speicher, sondern verkleinert auch noch die Programmdatei)

und das Prüfen:
Delphi macht
Delphi-Quellcode:
If Object is Exception Then Begin
  ... // behandle über das ExceptionObject
End Else Begin
  ... // gib nur die "Fehler xyz bei Adresse abc aufgetreten"-Meldung aus
End;
und bei mit wird "nur" so geprüft:
Delphi-Quellcode:
If Object.Name = 'ExceptionThen Begin
...
(natürlich nicht "nur" so einfach, da ich natürlich noch prüfen muß, ob ein Vorfahre des Objekts "Exception" heißt, falls es mal nicht selber so heißt, da es z.B. von soeinem abgeleitet wurde.
Weglassen kann ich diese Prüfung ja nicht, da eine Exception auch mal ohne ExceptionObjekt ausgelöst werden könnte und dann dieses natürlich nicht vorhanden wäre, oder auch mal ein Fehler in der Exception selber drin sein könnte, wo dann z.B. kein "gültiges" ExceptionObjekt existieren würde.

Man könnte also auch ein eigenes Objekt erstellen, welches "Exception" heißt, solange die beiden ersten "Variablen" darin den ExceptionText und den HilfeKontext (der kann auch 0 sein) enthalten (dieses ist ja eigentlich nur das, worauf es ankommt).


Aber wie gesagt, bis jetzt läuft es noch nicht so ganz, da anscheinend irgendwas von der SysUtils noch mit initialisiert wird, was ich noch nicht rausgefunden hab und was nicht in dem SysUtils-QuellCode drinsteht.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 04:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz