System.ExceptProc
Delphi
ExceptProc: Pointer; { Unhandled exception handler }
C++
extern DELPHI_PACKAGE void *ExceptProc;
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
variable | public | System.pas System.hpp |
System | System |
Beschreibung
Zeigt auf die Exception-Behandlungsroutine auf der untersten Ebene.
In Delphi behandelt ExceptProc noch nicht verarbeitete Exceptions (Exceptions, die nicht in dem Exception-Abschnitt einer try..except-Anweisung abgefangen wurden). Wenn in der Anwendung ein TApplication-Objekt vorhanden ist, werden Exceptions automatisch abgefangen und ein OnException-Ereignis erzeugt (auf das Sie mit der Ereignisbehandlungsroutine OnException der Anwendung oder eines TApplicationEvents-Objekts reagieren können). Da das TApplication-Objekt die Exceptions abfängt, reichen sie nie die Behandlungsroutine ExceptProc. Ein TApplication-Objekt fängt aber keine während der Initialisierung oder Finalisierung erzeugten Exceptions ab. Diese Exceptions werden von ExceptProc behandelt.
Durch das Abfangen von Exceptions in ExceptProc können Sie die Art und Weise ändern, in der unbehandelte Exceptions gemeldet werden. Speichern Sie dazu den Inhalt der Variablen ExceptProc, bevor sie die Adresse Ihrer eigenen Exception-Behandlungsroutine aufnimmt. Die erste Anweisung Ihrer neuen Exception-Behandlungsroutine muss dann den gespeicherten Wert von ExceptProc neu installieren. Auf diese Weise wird die Prozedur ExceptProc Teil eine Kette von Exception-Prozeduren, von denen jede in der umgekehrten Reihenfolge der Installation ausgeführt wird.
Die Prozedur für ExceptProc muss eine Signatur aufweisen, wie z.B.:
procedure ExceptHandler(ExceptObject: TObject; ExceptAddr: Pointer);