Ansicht
Dokumentation

ABENEXCEPTIONS_PRE_610 - EXCEPTIONS PRE 610

ABENEXCEPTIONS_PRE_610 - EXCEPTIONS PRE 610

Addresses (Business Address Services)   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Ausnahmen vor Einführung der klassenbasierten Ausnahmen

Ausnahmen sind klassenbasiert. Vor Einführung der Ausnahmeklasssen gab es folgende Arten von Ausnahmen:

  • Vom System erkannte Ausnahmesituationen, deren Ursachen sinnvoll im Programm behandelbar sind, lösten abfangbare Laufzeitfehler aus, die mit der Anweisung CATCH SYSTEM-EXCEPTIONS behandelt werden konnten. Abfangbare Laufzeitfehler sind obsolet. Jedem abfangbaren Laufzeitfehler ist eine Ausnahmeklasse zugeordnet, die statt dessen in einem TRY-Block behandelt werden soll. Umgekehrt sind nicht alle vordefinierten klassenbasierten Ausnahmen einem abfangbaren Laufzeitfehler zugeordnet. Es werden keine neuen abfangbaren Laufzeitfehler mehr angelegt und bestehende Laufzeitfehler, die behandelbar gemacht werden sollen, werden nicht mehr in abfangbare Laufzeitfehler verwandelt, sondern sie bekommen Ausnahmeklassen zugeordnet.
  • Selbst definierte behandelbare Ausnahmen waren nur in den Schnittstellen von Funktionsbausteinen und Methoden möglich. Solche Ausnahmen können innerhalb der Prozedur bei Erkennen einer Ausnahmesituation mit den Anweisungen RAISE oder MESSAGE RAISING ausgelöst werden. Der Aufrufer der Prozedur kann mit dem Zusatz EXCEPTIONS der Anweisungen CALL FUNCTION bzw. meth( ... ) den Ausnahmen, die er behandeln möchte, Rückgabewerte für das Systemfeld sy-subrc zuordnen und dieses nach dem Aufruf auswerten. Dies stellt aber keine echte Ausnahmebehandlung im Sinn der Reaktion auf ein Ereignis dar.

Zusammenspiel der Ausnahmekonzepte

Die klassenbasierten Ausnahmen ersetzen und erweitern die vorhergehenden Konzepte vollständig und sollen diese ablösen. Klassenbasierte Ausnahmen können in allen ABAP-Kontexten (Programme, Verarbeitungsblöcke) ausgelöst und behandelt werden. Insbesondere sind alle bisherigen abfangbaren Laufzeitfehler als klassenbasierte Ausnahmen behandelbar, wobei die bisherigen Ausnahmegruppen durch gemeinsame Oberklassen abgebildet werden. Aus Gründen der Abwärtskompatibilität wurden die abfangbaren Laufzeitfehler und die in der Schnittstelle von Methoden und Funktionsbausteinen definierten nicht-klassenbasierten Ausnahmen nicht abgeschafft, ihre Verwendung wurde aber wie folgt eingeschränkt:

  • In einer Prozedurschnittstelle schließen sich die Deklaration klassenbasierter Ausnahmen und die Definition nicht-klassenbasierter Ausnahmen aus.
  • Innerhalb eines Verarbeitungsblocks dürfen abfangbare Laufzeitfehler nicht mit CATCH SYSTEM-EXCEPTIONS abgefangen werden, wenn dort klassenbasierte Ausnahmen in TRY-Blöcken behandelt oder mit RAISE EXCEPTION oder mit dem Zusatz THROW in einem bedingten Ausdruck ausgelöst werden. Stattdessen sind abfangbare Laufzeitfehler über die Behandlung der zugehörigen klassenbasierten Ausnahme abzufangen.

Aus Gründen der Interoperabilität sollten innerhalb eines Verarbeitungsblocks klassenbasierte Ausnahmen und Rückgabewerte von Funktionsbausteinen mit klassischen Ausnahmen behandelt oder ausgewertet werden.






CPI1466 during Backup   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4656 Date: 20240523 Time: 172357     sap01-206 ( 89 ms )