Ansicht
Dokumentation

ABAPRAISE_EXCEPTION - RAISE EXCEPTION

ABAPRAISE_EXCEPTION - RAISE EXCEPTION

CL_GUI_FRONTEND_SERVICES - Frontend Services   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

RAISE

Kurzreferenz



RAISE exception.

Wirkung

Die Anweisung löst die nicht-klassenbasierte Ausnahme exception aus.

  • In einer Methode kann RAISE nur angegeben werden, wenn die nicht-klassenbasierte Ausnahme in der Schnittstelle der Methode definiert ist.
  • In Funktionsbausteinen sollte RAISE nur angegeben werden, wenn die nicht-klassenbasierte Ausnahme in der Schnittstelle des Funktionsbausteins definiert ist.
  • An allen anderen Stellen kann RAISE ebenfalls angegeben werden, sollte aber nicht.

Nach dem Auslösen der Ausnahme exception verhält sich das System wie folgt:

  • Falls die Ausnahme in einer Methode oder einem Funktionsbaustein ausgelöst wird, deren Aufrufer der Ausnahme einen Rückgabewert zuordnet, wird die Prozedur umgehend beendet, zur Aufrufstelle zurückgekehrt und das Systemfeld sy-subrc entsprechend der Zuordnung gesetzt.
  • Wird die Ausnahme in einer Methode oder einem Funktionsbaustein ausgelöst, deren Aufrufer der Ausnahme keinen Rückgabewert zuordnet, wird ein Laufzeitfehler ausgelöst, dessen Kurzdump den Namen der Ausnahme enthält.
  • Falls die Ausnahme in einem Unterprogramm ausgelöst wird, sucht das System in den Prozeduren der vorhergehenden Aufrufhierarchie nach dem ersten Funktionsbaustein. Falls ein solcher gefunden wird und die Ausnahme in diesem definiert ist, verhält sich das System so, als sei die Ausnahme in diesem Funktionsbaustein ausgelöst worden. Andernfalls kommt es zu einem Laufzeitfehler.
  • In allen anderen Verarbeitungsblöcken führt das Auslösen einer nicht-klassenbasierten Ausnahme zu einem Laufzeitfehler, der die weitere Programmausführung sofort beendet.

Diese Form der Anweisung RAISE darf nicht im gleichen Verarbeitungsblock wie die Anweisung RAISE EXCEPTION oder der Zusatz THROW in einem bedingten Ausdruck zum Auslösen klassenbasierter Ausnahmen verwendet werden.

Hinweise

  • Die Anweisung MESSAGE mit dem Zusatz RAISING löst ebenfalls eine nicht-klassenbasierte Ausnahme aus und ist in Fällen, in denen noch mit nicht-klassenbasierte Ausnahmen gearbeitet werden muss, da dies die Möglichkeit eröffnet, eine Ausnahme mit zusätzlichen Textinformationen zu versehen.
  • Wenn eine Prozedur über das Auslösen einer Ausnahme verlassen wird, wird der Inhalt der Formalparameter, für welche die Wertübergabe definiert ist, nicht den jeweiligen Aktualparametern zugewiesen.

Beispiel

Auslösen einer nicht-klassenbasierten Ausnahme in einer Methode.

Ausnahmen

Unbehandelbare Ausnahmen

  • Ursache: Die ausgelöste Ausnahme ist vom Aufrufer nicht behandelt worden.
    Laufzeitfehler: RAISE_EXCEPTION






BAL_S_LOG - Application Log: Log header data   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4499 Date: 20240523 Time: 134042     sap01-206 ( 86 ms )