Follow-up HTML viewer exceptions (#4404)

* Follow-up HTML viewer exceptions

Properly catch HTML viewer exceptions (follow-up #4396) to avoid dumps

* Add exception

* Add exception

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2021-01-12 02:54:03 -05:00 committed by GitHub
parent 830a682421
commit 40331ee80f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 84 additions and 64 deletions

View File

@ -83,7 +83,9 @@ CLASS zcl_abapgit_gui DEFINITION
IMPORTING IMPORTING
!iv_text TYPE string !iv_text TYPE string
RETURNING RETURNING
VALUE(rv_url) TYPE w3url . VALUE(rv_url) TYPE w3url
RAISING
zcx_abapgit_exception .
METHODS startup METHODS startup
RAISING RAISING
zcx_abapgit_exception . zcx_abapgit_exception .
@ -109,7 +111,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION. CLASS zcl_abapgit_gui IMPLEMENTATION.
METHOD back. METHOD back.
@ -427,7 +429,6 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
ev_size = lv_size ev_size = lv_size
et_tab = lt_html ). et_tab = lt_html ).
TRY.
mi_html_viewer->load_data( mi_html_viewer->load_data(
EXPORTING EXPORTING
iv_type = iv_type iv_type = iv_type
@ -438,9 +439,6 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
ev_assigned_url = rv_url ev_assigned_url = rv_url
CHANGING CHANGING
ct_data_table = lt_html ). ct_data_table = lt_html ).
CATCH zcx_abapgit_exception.
ASSERT 1 = 2.
ENDTRY.
ELSE. " Raw input ELSE. " Raw input
zcl_abapgit_convert=>xstring_to_bintab( zcl_abapgit_convert=>xstring_to_bintab(
EXPORTING EXPORTING
@ -449,7 +447,6 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
ev_size = lv_size ev_size = lv_size
et_bintab = lt_xdata ). et_bintab = lt_xdata ).
TRY.
mi_html_viewer->load_data( mi_html_viewer->load_data(
EXPORTING EXPORTING
iv_type = iv_type iv_type = iv_type
@ -460,9 +457,6 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
ev_assigned_url = rv_url ev_assigned_url = rv_url
CHANGING CHANGING
ct_data_table = lt_xdata ). ct_data_table = lt_xdata ).
CATCH zcx_abapgit_exception.
ASSERT 1 = 2.
ENDTRY.
ENDIF. ENDIF.
ASSERT sy-subrc = 0. " Image data error ASSERT sy-subrc = 0. " Image data error

View File

@ -1,30 +1,28 @@
INTERFACE zif_abapgit_gui_services INTERFACE zif_abapgit_gui_services
PUBLIC . PUBLIC .
METHODS cache_asset METHODS cache_asset
IMPORTING IMPORTING
iv_text TYPE string OPTIONAL !iv_text TYPE string OPTIONAL
iv_xdata TYPE xstring OPTIONAL !iv_xdata TYPE xstring OPTIONAL
iv_url TYPE w3url OPTIONAL !iv_url TYPE w3url OPTIONAL
iv_type TYPE c !iv_type TYPE c
iv_subtype TYPE c !iv_subtype TYPE c
RETURNING RETURNING
VALUE(rv_url) TYPE w3url. VALUE(rv_url) TYPE w3url
RAISING
zcx_abapgit_exception .
METHODS register_event_handler METHODS register_event_handler
IMPORTING IMPORTING
ii_event_handler TYPE REF TO zif_abapgit_gui_event_handler. !ii_event_handler TYPE REF TO zif_abapgit_gui_event_handler .
METHODS get_current_page_name METHODS get_current_page_name
RETURNING RETURNING
VALUE(rv_page_name) TYPE string . VALUE(rv_page_name) TYPE string .
METHODS get_hotkeys_ctl METHODS get_hotkeys_ctl
RETURNING RETURNING
VALUE(ri_hotkey_ctl) TYPE REF TO zif_abapgit_gui_hotkey_ctl . VALUE(ri_hotkey_ctl) TYPE REF TO zif_abapgit_gui_hotkey_ctl .
METHODS get_html_parts METHODS get_html_parts
RETURNING RETURNING
VALUE(ro_parts) TYPE REF TO zcl_abapgit_html_parts . VALUE(ro_parts) TYPE REF TO zcl_abapgit_html_parts .
ENDINTERFACE. ENDINTERFACE.

View File

@ -102,24 +102,35 @@ CLASS zcl_abapgit_html_viewer_gui IMPLEMENTATION.
IMPORTING IMPORTING
assigned_url = ev_assigned_url assigned_url = ev_assigned_url
CHANGING CHANGING
data_table = ct_data_table ). data_table = ct_data_table
EXCEPTIONS
dp_invalid_parameter = 1
dp_error_general = 2
cntl_error = 3
html_syntax_notcorrect = 4 ).
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'Error loading data for HTML viewer' ).
ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_html_viewer~set_registered_events. METHOD zif_abapgit_html_viewer~set_registered_events.
mo_html_viewer->set_registered_events( it_events ). mo_html_viewer->set_registered_events(
EXPORTING
events = it_events
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3 ).
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'Error registering events for HTML viewer' ).
ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_html_viewer~show_url.
mo_html_viewer->show_url( iv_url ).
ENDMETHOD.
METHOD zif_abapgit_html_viewer~set_visiblity. METHOD zif_abapgit_html_viewer~set_visiblity.
DATA: lv_visible TYPE c LENGTH 1. DATA: lv_visible TYPE c LENGTH 1.
@ -131,4 +142,21 @@ CLASS zcl_abapgit_html_viewer_gui IMPLEMENTATION.
mo_html_viewer->set_visible( lv_visible ). mo_html_viewer->set_visible( lv_visible ).
ENDMETHOD. ENDMETHOD.
METHOD zif_abapgit_html_viewer~show_url.
mo_html_viewer->show_url(
EXPORTING
url = iv_url
EXCEPTIONS
cntl_error = 1
cnht_error_not_allowed = 2
cnht_error_parameter = 3
dp_error_general = 4 ).
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( 'Error showing URL in HTML viewer' ).
ENDIF.
ENDMETHOD.
ENDCLASS. ENDCLASS.