Exceptions und Vererbung

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Exceptions und Vererbung

Beitrag von SaskuAc (Specialist / 321 / 37 / 44 ) »
Hallo miteinander,

ich bin etwas verwirrt. ( wie so oft )
Wir haben einen Report, der die Entgeltnachweise der Mitarbeiter verschlüsselt übermittelt. Läuft soweit auch ganz gut. Nun haben wir allerdings einen Dump bekommen. Die Fehlerursache habe ich schon herausgefunden - und zwar war es eine ungültige E-Mail Adresse ( kein @ ).

In diesem Fall wird die Exception "CX_ADDRESS_BCS" geworfen.

Was mich jetzt verwirrt ist, wir haben im programm die Methode "set_recipient":

Code: Alles auswählen.

    IF iv_smtpadr IS NOT INITIAL.

      mo_send_request->add_recipient(
        i_recipient  = cl_cam_address_bcs=>create_internet_address( iv_smtpadr )
        i_copy       = iv_cc
        i_blind_copy = iv_bcc ).

      mv_recipient = iv_smtpadr.

    ELSEIF iv_uname IS NOT INITIAL.

      mo_send_request->add_recipient(
        i_recipient  = cl_sapuser_bcs=>create( iv_uname )
        i_copy       = iv_cc
        i_blind_copy = iv_bcc ).

      mv_recipient = iv_uname.

    ENDIF.

  ENDMETHOD.    
Hier wird die Exception geworfen. Nun ist es aber so, dass ich beim Aufruf der Methode die Exception "CX_BCS" - die Superklasse von "CX_ADDRESS_BCS" - abfange.. ungefähr so:

Code: Alles auswählen.

""" some stuff 
try. 
   " some stuff
   go_mail->set_recipient( iv_smtpadr = p_smailc ) 
   " some stuff 
 catch cx_bcs into data(exc). 
" some stuff 
endtry. 
Meine Vermutung ist, dass der dump aufkommt, weil in der Definition der Methode kein Raising geschrieben wurde ( also in der set_recipient Methode ) und er dann einfach abbricht, obwohl im Stack drüber ein Exception Handling stattfindet.

Nun 1. Ist meine Vermutung korrekt? Weil wenn nein, wenn er die Exception nach oben reichen sollte, dann müsste doch der Catch-Block mit CX_BCS abfangen, oder?
2. Und das ist jetzt generell die Frage, fängt in ABAP eigentlich auch die Super-/Oberklasse alle exceptions ab die in der Vererbungshierarchie unter ihr stehen? ( Sollte ja eigentlich durch die OO-Beziehung "Ist ein" der Fall sein )

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


Re: Exceptions und Vererbung

Beitrag von black_adept (Top Expert / 4131 / 130 / 955 ) »
Moin SaskuAc,

@1) Vermutlich nicht. [ zur 2. Frage in 1): Wenn die Prämisse schon falsch ist, kann jede beliebige Folgerung gezogen werden ]
@2) Ja

Nachtrag zu 1) Der typische Fehler hier ist, dass in einer der Methoden in der Aufrufhierarchie zwischen deinem TRY-CATCH-Block und dem RAISE EXCEPTION vergessen wurde die Exception bekannt zu machen, so dass das Weiterreichen der Ausnahme nicht durchgängig ist. Bei dir wäre das wahrscheinlich die Methode SET_RECIPIENT
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Exceptions und Vererbung

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
Ich hoffe, ich habe die Frage richtig verstanden. Eine Ausnahme (oder eine Oberklasse dieser Ausnahme) muss aus aus der Schnittstelle der Methode hervorgehen, sonst wird sie nicht weitergereicht und ist ein ungefangene Ausnahme.Dann knallt das. Und ja, die Vererbung hat unter anderem den Sinn, dass der Eintrag einer Ausnahmeklasse alle Subklassen mit einschließt.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

36
Antw.
11879
Views
Exceptions
von ewx » 13.08.2015 16:25 • Verfasst in ABAP Objects®
6
Antw.
3433
Views
ABAP OO und Exceptions
von moo_jo » 15.08.2019 18:28 • Verfasst in ABAP Objects®
9
Antw.
3198
Views
FUBA EXCEPTIONS Protokolieren
von autohandel7 » 03.12.2018 10:34 • Verfasst in ABAP® für Anfänger
2
Antw.
1687
Views
Exceptions Texte von Funktionsbausteinen
von JohnLocklay » 24.01.2019 17:38 • Verfasst in ABAP® Core
3
Antw.
2935
Views
ALV -> Exceptions / Lights -> Spaltenname
von m4rkusr » 26.09.2007 09:38 • Verfasst in ABAP Objects®

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

DIN Norm Klassifizierung
vor 2 Tagen von Radinator 2 / 2728
Login Daten Management
vor 2 Tagen von sap_enthusiast gelöst 5 / 898

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.

Aktuelle Forenbeiträge

DIN Norm Klassifizierung
vor 2 Tagen von Radinator 2 / 2728
Login Daten Management
vor 2 Tagen von sap_enthusiast gelöst 5 / 898

Unbeantwortete Forenbeiträge