Code: Alles auswählen.
FUNCTION Z_FUNKKALK.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" REFERENCE(ZAHL1)
*" REFERENCE(ZAHL2)
*" REFERENCE(OPERATOR)
*" EXPORTING
*" REFERENCE(ERGEBNIS)
*" EXCEPTIONS
*" DIV_NULL
*"----------------------------------------------------------------------
if zahl2 = 0.
raise DIV_NULL.
endif.
case operator.
when '+'.
ergebnis = zahl1 + zahl2.
when '*'.
ergebnis = zahl1 * zahl2.
endcase.
ENDFUNCTION.Code: Alles auswählen.
data erg type i.
CALL FUNCTION 'Z_FUNKKALK'
EXPORTING
ZAHL1 = 3
ZAHL2 = 7
OPERATOR = 'aaa'
IMPORTING
ERGEBNIS = erg
EXCEPTIONS
DIV_NULL = 1
OTHERS = 2.
case sy-subrc.
when 0.
write: 'Das Ergebnis lautet', erg.
when 1.
write: 'FEHLER'.
when 2.
write: 'oterhs Fehler'.
ENDCASE.
* Implement suitable error handling hereFalls 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.
Code: Alles auswählen.
if zahl2 = 0.
raise DIV_NULL.
endif.Code: Alles auswählen.
"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" REFERENCE(ZAHL1)
*" REFERENCE(ZAHL2)
*" REFERENCE(OPERATOR)
*" EXPORTING
*" REFERENCE(ERGEBNIS)
*" EXCEPTIONS
*" OP_FALSCH
*" TOO_BIG
*"----------------------------------------------------------------------
* if zahl2 = 0.
* raise DIV_NULL.
* endif.
case operator.
when '+'.
ergebnis = zahl1 + zahl2.
when '*'.
ergebnis = zahl1 * zahl2.
when '/'.
ergebnis = zahl1 / zahl2.
when others.
raise OP_FALSCH.
endcase.
if ergebnis > 1.
raise TOO_BIG.
endif.
ENDFUNCTION.Code: Alles auswählen.
EXPORTING
ZAHL1 = 100
ZAHL2 = 5
OPERATOR = '/'
IMPORTING
ERGEBNIS = erg
EXCEPTIONS
OP_FALSCH = 1
"TOO_BIG = 2
OTHERS = 3.
case sy-subrc.
when 0.
write: 'Das Ergebnis lautet', erg.
when 1.
write: 'FEHLER falscher Operator'.
when 2.
write: 'Ergebnis zu groß'.
when 3.
write 'anderer Fehler'.
ENDCASE.