System.Win.ComObj.TComObject.SafeCallException
Delphi
function SafeCallException(ExceptObject: TObject;
ExceptAddr: Pointer): HResult; override;
C++
virtual HRESULT __fastcall SafeCallException(System::TObject* ExceptObject, void * ExceptAddr);
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
function | public | System.Win.ComObj.pas System.Win.ComObj.hpp |
System.Win.ComObj | TComObject |
Description
Gère les exceptions OLE.
SafeCallException empêche une exception d'être déclenchée en sortant de sa portée. Toute exception déclenchée doit également être gérée dans la méthode.
L'implémentation d'une méthode safecall garantit qu'aucune exception ne peut être déclenchée en encadrant la partie instruction de la méthode dans un bloc d'exception implicite.
Remarque : SafeCallException appelle la routine globale HandleSafeCallException qui propose un moyen standard de gérer ce comportement. Les méthodes d'une CoClasse qui prend en charge la gestion des exceptions OLE (c'est-à-dire qui implémente l'interface ISupportErrorInfo) sont affectées par cette fonction. Si ces méthodes de CoClasse utilisent la convention d'appel safecall, elles sont modifiées pour renvoyer un HRESULT. Les procédures renvoient un HRESULT, et les fonctions transmettent leur valeur de résultat habituel dans le dernier paramètre (out) et renvoient un HRESULT à la place. La méthode est encadrée dans un bloc d'exception, puis le HRESULT est renvoyé et l'environnement est défini de telle manière que l'implémentation de ISupportErrorInfo fonctionne correctement.