System.ExceptObject
Delphi
function ExceptObject: TObject;
C++
extern DELPHI_PACKAGE TObject* __fastcall ExceptObject(void);
Inhaltsverzeichnis
Eigenschaften
| Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
|---|---|---|---|---|
| function | public | System.pas System.hpp |
System | System |
Beschreibung
Gibt das aktuelle Exception-Objekt zurück.
ExceptObject gibt das aktuelle Exception-Objekt zurück. Dies ist das Exception-Objekt für die aktuell behandelte Exception. Wird aktuell keine Exception behandelt, gibt ExceptObject nil (Delphi) bzw. NULL (C++) zurück.
ExceptObject ist hilfreich, wenn auf die Exception-Variable (in Delphi deklariert für einen Block und in C++ in der catch-Anweisung) nicht zugegriffen werden kann. Dies kann eintreten, wenn die Exception-Behandlungsroutine eine Prozedur aufruft, die die Exception-Variable is aus dem Gültigkeitsbereich entfernt. Dies gilt auch für die else-Exception-Behandlungsroutine in Delphi, die keine Exception-Variable deklarieren kann.
Hinweis: Das von ExceptObject zurückgegebene Objekt könnte nach der Beendigung der Exception-Behandlungsroutine nicht mehr vorhanden sein. Daher können Sie mit ExceptObject keine Referenz auf das Exception-Objekt beibehalten und die Exception auch nicht erneut auslösen. Wenn dies in Ihrem Code erforderlich ist, rufen Sie AcquireExceptionObject auf.
Hinweis: ExceptObject funktioniert für C++ nur, wenn die ausgelöste Exception eine Exception im Delphi-Stil ist. Um ExceptObject für C++ korrekt zu verwenden, verwenden Sie für Exceptions im Delphi-Stil einen Code wie den folgenden:
#include <System.SysUtils.hpp>
#include <stdio.h>
int main()
{
try
{
StrToInt("bad integer");
}
catch(...)
{
TObject* Obj = ExceptObject();
printf("ExceptObject=%s\n", Obj ? AnsiString(Obj->ClassName()).c_str() : "NULL");
}
}