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 / 43 ) »
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 / 3946 / 105 / 886 ) »
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 / 3776 / 176 / 262 ) »
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.
10897
Views
Exceptions
von ewx » 13.08.2015 16:25 • Verfasst in ABAP Objects®
7
Antw.
4202
Views
Interfaces vs. Vererbung
von ewx » 02.12.2014 18:32 • Verfasst in ABAP Objects®
6
Antw.
3028
Views
ABAP OO und Exceptions
von moo_jo » 15.08.2019 18:28 • Verfasst in ABAP Objects®
0
Antw.
1267
Views
Vererbung von CL_RSR_WWW_MODIFY_TABLE
von ratoshuan » 04.04.2006 18:45 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
1021
Views
Queued RFC und Exceptions?
von marcus » 07.03.2005 12:54 • 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

SELECT CHAR16 in CHAR12-Feld
vor 49 Minuten von Patrick1982 gelöst 5 / 55
alv_grid aktualisieren
vor 5 Stunden von Egzon gelöst 4 / 82

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

SELECT CHAR16 in CHAR12-Feld
vor 49 Minuten von Patrick1982 gelöst 5 / 55
alv_grid aktualisieren
vor 5 Stunden von Egzon gelöst 4 / 82

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 134
Group Items auf einer Filterbar
vor 5 Wochen von Bright4.5 1 / 170