Catch the Dump in ABAP – I

0
547

Normally, if any exception occurred it will go to dump immediately in a program, then we will process this through the tcode ST22(dump analysis).  This code comes handy when the behaviour of function module is not predictable.

Explicit Error Handling
Explicit Error Handling

We will convert the dump into an error message (like in above snap) or some text statement. For this we need to call this statement
     RECEIVE RESULTS FROM FUNCTION ‘function module’ 

 

Sample Program

 
REPORT zcustom_errmsg.
PARAMETERS: p_file LIKE rlgrap-filename .
DATA: v_file TYPE string.
DATA: BEGIN OF itab OCCURS 0,
      name(23) TYPE  c,
      END OF itab.

DATA: errormessage TYPE char50.
v_file = p_file.
CALL FUNCTION ‘GUI_UPLOAD’
  EXPORTING
    filename            = v_file
    filetype            = ‘ASC’
    has_field_separator = ‘ ‘
  TABLES
    data_tab            = itab.

RECEIVE RESULTS FROM FUNCTION ‘GUI_UPLOAD’
 EXCEPTIONS
   file_open_error               = 1
   file_read_error               = 2
   no_batch                      = 3
   gui_refuse_filetransfer       = 4
   invalid_type                  = 5
   no_authority                  = 6
   unknown_error                 = 7
   bad_data_format               = 8
   header_not_allowed            = 9
   separator_not_allowed         = 10
   header_too_long               = 11
   unknown_dp_error              = 12
   access_denied                 = 13
   dp_out_of_memory              = 14
   disk_full                     = 15
   dp_timeout                    = 16
   OTHERS                        = 17 .

CASE sy-subrc.
  WHEN 0.
    errormessage     = ‘Data Loaded’.
  WHEN 1.
    errormessage     = ‘FILE_OPEN_ERROR’.
  WHEN 2.
    errormessage     = ‘FILE_READ_ERROR’.
  WHEN 3.
    errormessage     = ‘NO_BATCH’.
  WHEN 4.
    errormessage     = ‘GUI_REFUSE_FILETRANSFER’.
  WHEN 5.
    errormessage     = ‘INVALID_TYPE’.
  WHEN 6.
    errormessage     = ‘NO_AUTHORITY’.
  WHEN 7.
    errormessage     = ‘UNKNOWN_ERROR’.
  WHEN 8.
    errormessage     = ‘BAD_DATA_FORMAT’.
  WHEN 9.
    errormessage     = ‘HEADER_NOT_ALLOWED’.
  WHEN 10.
    errormessage     = ‘SEPARATOR_NOT_ALLOWED’.
  WHEN 11.
    errormessage     = ‘HEADER_TOO_LONG’.
  WHEN 12.
    errormessage     = ‘UNKNOWN_DP_ERROR’.
  WHEN 13.
    errormessage     = ‘ACCESS_DENIED’.
  WHEN 14.
    errormessage     = ‘DP_OUT_OF_MEMORY’.
  WHEN 15.
    errormessage     = ‘DISK_FULL’.
  WHEN 16.
    errormessage     = ‘DP_TIMEOUT’.
  WHEN 17.
    errormessage     = ‘OTHERS’.
ENDCASE.

MESSAGE e001(00) WITH errormessage .

The above program will give an error message instead of a dump, dump in terms of minor errors is quite worthless to search for.

LEAVE A REPLY