ABAP OO und Exceptions

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

ABAP OO und Exceptions

Beitrag von moo_jo (ForumUser / 36 / 10 / 7 ) »
Moin zusammen Werte ABAP-Experten!

bei meinem aktuellen Projekt stehe ich wieder einmal davor, dass ich - meiner Meinung nach - zu wenig mit Exceptions arbeite. Mir fehlt dazu einfach etwas das Know-How. Hat jemand gute Seiten, Links, Tipps zu Exception Handling?

Konkret geht es mir um folgendes Beispiel:

Code: Alles auswählen.

NEW ZCL_DUDEN=>get_instance(
   )->check( 'supercalifragilisticexpialigetisch' 
   )->save( ).

In diesem Beispiel prüft die Methode Check() der Singleton Klasse ZCL_DUDEN, ob der Importing-Parameter eine Zahl enthält:

Code: Alles auswählen.

METHOD check.
IF iv_word CA '0123456789'.
  RAISE NOT_A_WORD.
ENDIF.
ro_me = go_me.
ENDMETHOD.

Mein Wunsch wäre, dass ich die Exception außerhalb der Methoden-Verkettung abfangen kann, so in etwa:

Code: Alles auswählen.

TRY.
NEW ZCL_DUDEN=>get_instance(
   )->check( 'supercalifragilisticexpialigetisch' 
   )->save( ).
CATCH NOT_A_WORD.
CATCH CX_ROOT.
ENDTRY.

Wie geht das denn? So schwer kann das ja wohl nicht sein?

Danke!

Moo_jo

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ABAP OO und Exceptions

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
moo_jo hat geschrieben:
15.08.2019 18:28
So schwer kann das ja wohl nicht sein?
Das ist richtig... ;)

Hier mein Vorschlag:

Code: Alles auswählen.

REPORT.

CLASS not_a_word DEFINITION INHERITING FROM cx_static_check.
  PUBLIC SECTION.
ENDCLASS.

CLASS duden DEFINITION.
  PUBLIC SECTION.
    METHODS check
      IMPORTING
                word          TYPE string
      RETURNING
                VALUE(object) TYPE REF TO duden
      RAISING   not_a_word.
    METHODS save.
  PROTECTED SECTION.
    DATA word TYPE string.
ENDCLASS.
CLASS duden IMPLEMENTATION.
  METHOD check.
    IF word CA '0123456789'.
      RAISE EXCEPTION TYPE not_a_word.
    ELSE.
      me->word = word.
    ENDIF.

    object = me.
  ENDMETHOD.
  METHOD save.
    MESSAGE |{ word } saved in dictionary| TYPE 'I'.
  ENDMETHOD.
ENDCLASS.

PARAMETERS p_word TYPE string.

START-OF-SELECTION.

  TRY.
      NEW duden( )->check( p_word )->save( ).
    CATCH not_a_word INTO DATA(word_error).
      MESSAGE 'That''s no word... :(' TYPE 'I'.
  ENDTRY.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
moo_jo


Re: ABAP OO und Exceptions

Beitrag von moo_jo (ForumUser / 36 / 10 / 7 ) »
Hey Enno,

dein Coding läuft 1A und macht das, was ich erwarte :)

Habe das gerade noch in mein Beispiel eingebaut.

Ich muss jedoch in der Methode einen Exception Parameter definieren. Wenn ich diesen nun Raise, dann kann ich innerhalb der Methodenverkettung darauf reagieren. Das ist ja genau das, was ich möchte.

Jetzt stelle ich mir die Frage: Kann ich die Excecption Klasse irgendwie global als Attribut definieren und den Exception Parameter in der Methode umgehen?

Moo_jo

Re: ABAP OO und Exceptions

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Ja kannst du, indem du die Ausnahmeklasse von cx_no_check (oder cx_dynamic_check?!) ableitest.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
moo_jo


Re: ABAP OO und Exceptions

Beitrag von moo_jo (ForumUser / 36 / 10 / 7 ) »
Läuft nun!

@all
hat jemand noch gute Links und Tipps zu Exception Handling in ABAP OO?

Moo_jo


Re: ABAP OO und Exceptions

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Folgende Bücher enthalten jeweils ein Kapitel und Hinweise zu Exception classes:
ABAP To The Future
ABAP Kochbuch
Besseres ABAP

Der Ultimative Tipp lautet jedoch:
Einfach machen. Dann bekommt man am besten ein Gefühl dafür, wo die Stärken und wo die Schwächen der Ausnahmeklassen sind. Und man bekommt auch am ehesten die Probleme mit, die man dann gezielt lösen kann.

Seite 1 von 1

Vergleichbare Themen

36
Antw.
10875
Views
Exceptions
von ewx » 13.08.2015 16:25 • Verfasst in ABAP Objects®
2
Antw.
1021
Views
Queued RFC und Exceptions?
von marcus » 07.03.2005 12:54 • Verfasst in ABAP® Core
2
Antw.
1596
Views
Exceptions und Vererbung
von SaskuAc » 08.11.2018 13:43 • Verfasst in ABAP® für Anfänger
9
Antw.
2597
Views
FUBA EXCEPTIONS Protokolieren
von autohandel7 » 03.12.2018 10:34 • Verfasst in ABAP® für Anfänger
3
Antw.
2753
Views
ALV -> Exceptions / Lights -> Spaltenname
von m4rkusr » 26.09.2007 09:38 • Verfasst in ABAP Objects®

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.