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.