System.Win.ComObj.TComObject.SafeCallException
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 | TComObject |
Beschreibung
Dient zur Behandlung von OLE-Exceptions.
SafeCallException verhindert, dass eine ausgelöste 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 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...except-Block eingeschlossen, HRESULT zurückgegeben und die Umgebung so eingerichtet, dass die ISupportErrorInfo-Implementierung richtig funktioniert.