[ABAP] vordefinierte Ausnahmeklassen (Exception-Klassen) im System

Eine schöne Übersicht zu System-Exception-Klassen findet sich hier: Link

* häufig verwendete System-Ausnahmeklassen:

CX_ROOT
CX_SY_ARITHMETIC_ERROR
CX_SY_ZERODIVIDE
CX_SY_CREATE_OBJECT_ERROR
CX_SY_FILE_ACCESS_ERROR
CX_SY_ITAB_LINE_NOT_FOUND
CX_SY_SQL_ERROR

[ABAP] Zugriff auf interne Tabellen mit Table expressions

* Zeile (Struct) per Index
TRY.
   DATA(wa) = itab[ idx ].
   ...
   CATCH cx_sy_itab_line_not_found.
   ...
ENDTRY.

* Zelle per Index
TRY.
   DATA(var) = itab[ 1 ]-colname.
   ...
   CATCH cx_sy_itab_line_not_found.
   ...
ENDTRY.

* Suche mit Keys
* Suche mit TE ist Case-Sensitiv
* es wird immer nur die erste gefundene Zeile der Ergebnismenge geliefert

TRY.
   DATA(wa) = itab[ colname = 'abc' ].
   DATA(wa2) = itab[ colname = 'ABC' colname2 = '123' ].
* Zugriff per Secondary Key mit Komponenten
   DATA(wa3) = itab[ KEY sec_key COMPONENTS colname = '123' ].
   ...
   CATCH cx_sy_itab_line_not_found.
   ...
ENDTRY.

* Prüfen, ob Eintrag existiert
IF line_exists( itab[ colname = 'abc' ] ).
  ...
ENDIF.

* Arbeit mit Feldsymbolen um Faktor 2-3 schneller
DATA: itab TYPE ...
FIELD-SYMBOLS: <fs_data> TYPE ...

DO 100000 TIMES.
  ASSIGN itab[ col = sy-index ] TO <fs_data>.
  <ls_data>...
ENDDO.

Weiterführende Infos: Link, Link und Link