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 / 4089 / 127 / 940 ) »
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 / 3924 / 200 / 280 ) »
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.
11594
Views
Exceptions
von ewx » 13.08.2015 16:25 • Verfasst in ABAP Objects®
6
Antw.
3286
Views
ABAP OO und Exceptions
von moo_jo » 15.08.2019 18:28 • Verfasst in ABAP Objects®
2
Antw.
1186
Views
Queued RFC und Exceptions?
von marcus » 07.03.2005 12:54 • Verfasst in ABAP® Core
9
Antw.
3062
Views
FUBA EXCEPTIONS Protokolieren
von autohandel7 » 03.12.2018 10:34 • Verfasst in ABAP® für Anfänger
2
Antw.
1580
Views
Exceptions Texte von Funktionsbausteinen
von JohnLocklay » 24.01.2019 17:38 • Verfasst in ABAP® Core

Ü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

Dialog-Container mit Toolbar/Status
vor 8 Stunden von DeathAndPain gelöst 22 / 2954
Daten an Tabelle binden
vor 13 Stunden von Lukas Sanders 2 / 946
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 505

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

Dialog-Container mit Toolbar/Status
vor 8 Stunden von DeathAndPain gelöst 22 / 2954
Daten an Tabelle binden
vor 13 Stunden von Lukas Sanders 2 / 946
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 505

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2522
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9103