Zum Inhalt springen

Exceptions direkt in der ADT-Konsole ausgeben mit der Klasse cl_xco_cp_adt_simple_classrun

Es war ja mit NW ABAP 7.52+ bekannt direkt über die ABAP Development Tools Klassen auszuführen und beispielsweise Daten in der Konsole auszugeben. Dafür musste das Interface if_oo_adt_classrun implementiert sein.

Die Klasse konnte dann direkt über F9 oder Rechtsklick > Run As > ABAP Application (Console) ausgeführt werden.
Das funktioniert auch sehr einfach.

CLASS zcl_test_sascha DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
    interfaces if_oo_adt_classrun.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_test_sascha IMPLEMENTATION.

  METHOD if_oo_adt_classrun~main.

    SELECT * FROM zzt_test_sascha INTO TABLE @DATA(lt_test_sascha).
    DATA(ls_test_sascha) = lt_test_sascha[ 1 ].
    out->write( data = ls_test_sascha ).

  ENDMETHOD.

ENDCLASS.
Ausgabe in der Konsole

Soweit so gut aber was passiert wenn eine Exception geschmissen wird die man nicht abfängt. Ändern wir also mal den Index auf 6 (Tabelle hat 4 Zeilen).

Dump! Wie es ja auch zu erwarten ist. Den kann man sich wunderbar in den ADT oder im System anschauen, analysieren und so weiter.

Was aber interessant und neu ist. Die abstrakte Klasse cl_xco_cp_adt_simple_classrun. Von dieser kann man einfach eine Unterklasse erstellen und diesmal die main-Methode redefineren.

Darin führen wir jetzt dieselben 3 Zeilen Code aus.

CLASS zcl_test_simple_classrun DEFINITION
  PUBLIC
  INHERITING FROM cl_xco_cp_adt_simple_classrun
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
  PROTECTED SECTION.
    METHODS: main REDEFINITION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_test_simple_classrun IMPLEMENTATION.

  METHOD main.

    SELECT * FROM zzt_test_sascha INTO TABLE @DATA(lt_test_sascha).
    DATA(ls_test_sascha) = lt_test_sascha[ 8 ].
    out->write( ia_data = ls_test_sascha ).

  ENDMETHOD.

ENDCLASS.

Und das Ergebnis… diesmal in der Konsole.

Exeptions werden direkt in der Konsole ausgegeben -> Kein Dump

Mag Spielerei sein kann aber für Tests doch ganz interessant sein. 🙂

Facebooktwitterpinterestlinkedinmail
Published inABAPEclipse/ADTSAP Entwicklung

Sei der Erste der einen Kommentar abgibt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert