Code: Alles auswählen.
TRY.
FUNCTION 'XXX'
CATCH <EXCEPTION ID>.
ENDTRY.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
danbrown_1999
Hier ist, was ich abfange über Exceptions:a-dead-trousers hat geschrieben: ↑12.02.2023 09:28Die Exception ist doch in der Methodensignatur definiert.
Das einzige was du beachten musst ist, dass es sich um eine "alte" Exception handelt, die man nicht mit TRY ... CATCH abfangen kann, sondern mit dem Zusatz EXCEPTIONS bei CALL METHOD einem Returncode zuordnen musst. Durch abfragen des SY-SUBRC im Anschluss, weißt du weche Exception aufgetreten ist und kannst dann entsprechend reagieren.
lg ADT
Code: Alles auswählen.
cl_http_client=>create_by_url( EXPORTING
url = lv_url
IMPORTING
client = o_client
EXCEPTIONS
argument_not_found = 1
plugin_not_active = 2
internal_error = 3
others = 4 ).
if sy-subrc <> 0.
o_client->close( ).
endif.
Code: Alles auswählen.
IF subrc = 1.
RAISE http_communication_failure.
ELSEIF subrc = 2.
RAISE http_invalid_state.
ELSEIF subrc = 3.
RAISE http_processing_failed.
ENDIF.
ENDIF.
Code: Alles auswählen.
METHOD if_http_client~send.
" ...
IF subrc <> 0 OR m_ecode <> 0.
pf_m_close c_statistic_state 'HTTP Send'. "#EC *
RAISE http_communication_failure.
ENDIF.
ENDMETHOD.
Code: Alles auswählen.
CALL METHOD http_client->send
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
http_invalid_timeout = 4
OTHERS = 5.
Code: Alles auswählen.
METHOD send_receive.
" ...
CALL METHOD mo_http_client->send
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
http_invalid_timeout = 4
OTHERS = 5.
IF sy-subrc = 0.
CALL METHOD mo_http_client->receive
EXCEPTIONS
http_communication_failure = 1
http_invalid_state = 2
http_processing_failed = 3
OTHERS = 5.
ENDIF.
CASE sy-subrc.
WHEN 1.
RAISE EXCEPTION TYPE cx_rest_client_exception
EXPORTING
textid = cx_rest_client_exception=>http_client_comm_failure.
ENDCASE.
" ...
ENDMETHOD.
Code: Alles auswählen.
TRY.
send_receive( 'GET' ).
CATCH cx_rest_client_exception INTO exception.
MESSAGE exception TYPE 'E'.
ENDTRY.