System.Win.ComObj.TAutoIntfObject.SafeCallException

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function SafeCallException(ExceptObject: TObject;
ExceptAddr: Pointer): HResult; override;

C++

virtual HRESULT __fastcall SafeCallException(System::TObject* ExceptObject, void * ExceptAddr);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.Win.ComObj.pas
System.Win.ComObj.hpp
System.Win.ComObj TAutoIntfObject

Beschreibung

Wird für OLE-Exception-Behandlung verwendet.

SafeCallException verhindert, dass eine Exception ihren Gültigkeitsbereich verlässt. Alle ausgelösten Exceptions müssen auch in dieser Methode behandelt werden.

Durch die Implementierung einer Safecall-Methode kann sichergestellt werden, dass keine Exceptions außerhalb des Gültigkeitsbereichs ausgelöst werden, indem der Anweisungsteil der Methode in einen impliziten try...except-Block eingeschlossen wird.

Anmerkung:  SafeCallException ruft die globale Routine HandleSafeCallException auf, die eine Standardbehandlung bereitstellt. Diese Funktion wirkt sich auf die Methoden einer Co-Klasse aus, die OLE-Exception-Behandlung (die die ISupportErrorInfo-Schnittstelle implementiert) unterstützt. Verwenden die Methoden die Safecall-Aufrufkonvention, werden sie geändert, um HRESULT zurückzugeben. Prozeduren geben HRESULT zurück, Funktionen übergeben ihren normalen Rückgabewert als letzten Parameter und geben stattdessen HRESULT zurück. Die Methode wird in einen try...finally-Block eingeschlossen (danach wird HRESULT zurückgegeben) und die Umgebung so eingerichtet, dass die ISupportErrorInfo-Implementierung richtig funktioniert.