Show TOC

HintergrundKlassenbasierte Ausnahmen im asynchronen RFC Dieses Dokument in der Navigationsstruktur finden

 

Wenn Sie einen RFC-Aufruf des Typs aRFC (asynchroner RFC) mit Rückantwort (RECEIVE RESULTS FROM FUNCTION) verwenden, unterscheidet sich die Übermittlung des Ausnahmeobjekts an den RFC-Client von den übrigen RFC-Typen in folgenden Punkten.

  • Der EXCPETIONS-Block in der Anweisung RECEIVE RESULTS FROM FUNCTION ist immer dann erlaubt, wenn die entsprechende Anweisung CALL FUNCTION auch einen EXCEPTIONS-Block enthält. Umgekehrt darf der EXCEPTIONS-Block auch nur dann ausgelassen werden, wenn dies in beiden Anweisungen geschieht. Die entsprechende Prüfung wird in durch die Laufzeit durchgeführt.

    Hinweis Hinweis

    Eine abweichende Verwendung des EXCPETIONS-Blocks führt zu einem Laufzeitfehler. Da die Zuordnung der beiden Anweisungen nicht eindeutig ist, wird eine Syntaxprüfung nicht unterstützt.

    Ende des Hinweises.
  • Wird der Funktionsaufruf ohne EXCEPTIONS-Block implementiert, sollte die Rückruf-Routine als Methode (referenziert über den CALLING-Zusatz) implementiert werden.

  • Die klassenbasierte Ausnahme kann über TRY...CATCH...ENTDTRY abgefangen werden, wenn die Anweisung RECEIVE RESULTS FROM FUNCTION in diesem Block enthalten ist (oder in Methoden/Formularen, die in diesem Block aufgerufen werden).

  • Klassenbasierte Ausnahmen müssen innerhalb der Rückruf-Routine abgefangen und behandelt werden und können nicht nach außen propagiert werdeen. Jede nicht abgefangene Ausnahme führt zum Laufzeitfehler UNCAUGHT_EXCEPTION.

  • Wenn die klassenbasierte Ausnahmebehandlung aktiv ist und die Anweisung RECEIVE RESULTS FROM FUNCTION in der Rückruf-Routine fehlt, wird ein Laufzeitfehler ausgegeben.

    Hinweis Hinweis

    Für die anderen RFC-Typen mit asynchronen Eigenschaften (aRFC ohne Rückantwort, tRFC, qRFC, bgRFC) müssen diese Besonderheiten nicht beachtet werden, da

    Ende des Hinweises.
    • beim aRFC ohne Rückantwort Ausnahmen grundsätzlich nicht zum RFC-Client transportiert werden.

    • bei tRFC, qRFC und bgRFC nicht das Clientprogramm die Rückantwort erhält, sondern die RFC-Schicht selbst die Behandlung aller Fehlersituationen (sowohl bei klassischen als auch bei klassenbasierten Ausnahmen) durchführt.