System.ExceptObject

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function ExceptObject: TObject;

C++

extern DELPHI_PACKAGE TObject* __fastcall ExceptObject(void);

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");
  }
}

Siehe auch

Codebeispiele