System.Rtti.TInterceptExceptionNotify
Delphi
TInterceptExceptionNotify = reference to procedure(Instance: TObject;
Method: TRttiMethod; const Args: TArray<TValue>; out RaiseException: Boolean;
TheException: Exception; out Result: TValue);
C++
__interface TInterceptExceptionNotify : public System::IInterface
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
anonMethod class |
public | System.Rtti.pas System.Rtti.hpp |
System.Rtti | System.Rtti |
Beschreibung
Typ der Ereignisbehandlungsroutine System.Rtti.TVirtualMethodInterceptor.OnException.
Mit TInterceptExceptionNotify implementieren Sie die Ereignisbehandlungsroutine OnException, um das Abwickeln der Exception zu verhindern, so dass die Methode normal zurückzukehren scheint.
Setzen Sie RaiseException
auf False, um das Abwickeln und die Weitergabe der ausgelösten Exception zu verhindern. Der Vorgabewert ist True. In diesem Fall wird die Exception erneut ausgelöst und an den Aufrufer weitergegeben.
Args
ist die Liste der als TValue-Werte gekapselten Argumente, die an die virtuelle Methode übergeben wurde. Bei var
- oder out
-Parametern können diese Werte mit Auswirkungen auf den Aufrufer weiter bearbeitet werden - Werte, die per Wert übergebenen Parametern entsprechen werden nach Aufruf dieses Ereignisses verworfen. Beachten Sie bitte, dass Änderungen der var
- oder out
-Parameter erkennbare Auswirkungen haben können, auch wenn die Exception ausgelöst wurde.
TheException
ist das Exception-Objekt, das von der geerbten Methodenimplementierung ausgelöst wurde.
Instance
ist die Instanz, für die eine virtuelle Methode aufgerufen wurde.
Method
ist das RTTI-Objekt, das zu der für die Instanz aufgerufenen virtuellen Methode gehört.
Wenn RaiseException
auf False gesetzt ist (damit die Weitergabe der Exception unterdrückt wird), sollte Result
auf den gewünschten Rückgabewert der Methode gesetzt werden. Der Standardwert ist TValue.Empty, was in 0, nil, '' oder den entsprechenden leeren Wert des Rückgabetyps umgewandelt wird.