Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Exception-Objekt in OnException auswerten

  Alt 2. Jul 2008, 22:13
Ohne Debug-Informationen geht es natürlich nicht, und mit Debug-Information wirst du dein Programm wohl kaum ausliefern.

Bei Exceptions, die von EExternal abgeleitet sind, so auch EAccessViolation, erhältst du über den Windows-Exception-Record auch die Adresse, an der die Exception aufgetreten ist (Zugriffsverletzung an Adresse XYZ...).
Diese kannst du dann versuchen auszuwerten, allerdings können sich die Adressen der Routinen bei jeder Kompilierung ändern.
Außerdem kann es passieren, dass die eigentliche Exception in einer Hilfsroutine geworfen wird, die mit falschen Parametern aufgerufen wurde, zum Beispiel einer Methode mit nil als Self. Um da den Verursacher zu ermitteln, müsstest du einen Callstack erstellen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat