System.ExceptObject

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function ExceptObject: TObject;

C++

extern DELPHI_PACKAGE TObject* __fastcall ExceptObject(void);

Propriétés

Type Visibilité  Source Unité  Parent
function public
System.pas
System.hpp
System System


Description

Renvoie l'objet exception en cours.

ExceptObject renvoie l'objet exception en cours. C'est l'objet Exception correspondant à l'exception en cours de traitement. Si aucune exception n'est actuellement traitée, ExceptObject renvoie nil (Delphi) ou NULL (C++).

ExceptObject est utile lorsque la variable d'exception (déclarée dans un bloc Delphi ou une instruction catch C++) n'est pas accessible. Cela se produit lorsque le gestionnaire d'exception appelle une procédure, et place la variable d'exception en dehors de la portée. C'est aussi le cas pour le gestionnaire d'exception else de Delphi, qui ne peut pas déclarer de variable d'exception.

Remarque: L'objet renvoyé par ExceptObject peut ne pas exister à la fin du gestionnaire d'exception. Vous ne pouvez pas utiliser ExceptObject pour conserver une référence à l'objet exception ou pour déclencher l'exception une nouvelle fois. Si vous devez effectuer l'une de ces opérations, appelez AcquireExceptionObject.
Remarque: ExceptObject fonctionne dans C++ uniquement lorsque l'exception déclenchée est une exception de style Delphi. Pour utiliser correctement ExceptObject pour C++, avec les exceptions de style Delphi, utilisez du code similaire au code suivant :
#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");
  }
}

Voir aussi

Exemples de code