Ausnahmeklassen im ABAP

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

Ausnahmeklassen im ABAP

Beitrag von Andrzej (ForumUser / 63 / 23 / 0 ) »
Hallo Forum,

ich habe eine Allgemeine Fragen zum Thema Ausnahmeklassen.

Die Oberklasse aller Ausnahmeklassen ist ja CX_ROOT diese vererbt an CX_STATIC_CHECK diese wiederum an CX_DYNAMIC_CHECK und diese wieder an CX_NO_CHECK..

wann kann ich welche Ausnahmeklasse verwenden bzw. kann mir jemand mit einfachen Worten erklären wann ich welche Klasse verwenden kann?

Vielen Dank schon mal für eure Hilfe

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


Re: Ausnahmeklassen im ABAP

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Ein wichtiger Unterschied ist, dass du cx_static_check in jeder Signatur, in dessen Methode sie verwendet wird, definiert werden muss.
Das nervt, wenn du geschachtelte Aufrufe hast.
method_1
method_2()
method_3()
method_4()
und in method_4 wirfst du die Ausnahme, die du in method_1 abfangen möchtest.
Dann nimmst du dynamic oder no_check.
Dann kannst du die Exception in method_1 abfangen ohne dass sie durch method_2 und method_3 "durchgeschleift" werden müssen.

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


Re: Ausnahmeklassen im ABAP

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Andrzej hat geschrieben:Hallo Forum,

ich habe eine Allgemeine Fragen zum Thema Ausnahmeklassen.

Die Oberklasse aller Ausnahmeklassen ist ja CX_ROOT diese vererbt an CX_STATIC_CHECK diese wiederum an CX_DYNAMIC_CHECK und diese wieder an CX_NO_CHECK..

wann kann ich welche Ausnahmeklasse verwenden bzw. kann mir jemand mit einfachen Worten erklären wann ich welche Klasse verwenden kann?

Vielen Dank schon mal für eure Hilfe
Hallo Andrzej,

das ist doch Humbug was du da schreibst. CX_STATIC_CHECK erbt zwar von CX_ROOT - aber CX_DYNAMIC_CHECK und CX_NO_CHECK tun das auch. Da ist also gar keine Vererbungskette wie du behauptest.
Auch Ennos Aussage über die Verwendung von CX_STATIC_CHECK oder CX_DYNAMIC_CHECK ist etwas undeutlich. CX_STATIC_CHECK eine abstrakte Klasse ist und daher kann sie nicht selber sondern nur abgeleitete Klassen davon in die Signatur einer Klasse aufgenommen werden. Und auch CX_DYNAMIC_CHECK muss explizit in die Signatur aufgenommen werden, auch wenn dann nicht der Syntaxchecker schon proaktiv auf Probleme hinweist sondern dass das Problem erst zur Laufzeit auftritt.
Desweiteren halte ich Ennos Aussage leider nicht gerade für "best practice". Es ist doch gerade der Sinn, dass es Methode_3 egal sein sollte ob es in einer Aufrufkette von Method_1 liegt oder nicht. Für Method_3 ist nur wichtig, dass in Method_4 eine Ausnahme geworfen werden kann. Und dann soll Method_3 darauf auch gefälligst selber reagieren. Entweder indem die Ausnahem aus Method_4 selbst via TRY-Catch abgefangen und behandlet wird oder indem die Ausnahme in die Signatur aufgenommen wird um potentiellen Aufrufern mitzuteilen, dass diese sich gefälligst um diese Ausnahme zu kümmern haben. Nur so ist die Unabhängigkeit der Methoden bzgl. ihrer Aufrufhistorie gewährleistet.

Und wenn in Method_4 eine Ausnahme geworfen wird die in Method_3 nicht in der Signatur steht kann man die immer noch in method_1 abfangen, indem man dort einen Catch auf alle in der schnittstelle definierten Ausnahmen ( vom Typ CX_STATIC_CHECK oder CX_DYNAMIC_CHECK )und dann einen definiert um alle unerwarteten Ausnahmen abzuhandeln ( CX_ROOT ).
Und ganz zum Schluss: Und mir gefällt ein gezieltes CATCH à la

Code: Alles auswählen.

catch zcx_my_exceptionclass1. ...
catch zcx_my_exceptionclass2. ...
catch cx_root.  " Für den Rest halt
besser als ein reaktives Coding

Code: Alles auswählen.

catch cx_root.
" und hier jetzt unterscheiden was tatsächlich geworfen wurde 
Eine recht gute Erklärung zur Verwendung von Ausnahmeklassen von SAP findest du hier:
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

11
Antw.
5248
Views
Literatur zu Ausnahmeklassen
von ralf.wenzel » 17.05.2014 09:51 • Verfasst in ABAP Objects®
0
Antw.
1566
Views
Kurzdump verhindern durch Ausnahmeklassen?
von Hunter » 23.10.2007 13:19 • Verfasst in ABAP Objects®
5
Antw.
11312
Views
Kundeneigene ABAP-Muster Vorlage im ABAP-Editor anlegen
von Stentor » 19.07.2005 11:10 • Verfasst in Basis
2
Antw.
3868
Views
ABAP Objects oder ABAP Referenz
von Gast » 23.06.2005 15:52 • Verfasst in ABAP® für Anfänger
6
Antw.
5602
Views
ABAP Workbench und ABAP Dictionary - für Einsteiger
von schnonus » 03.04.2008 10:39 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 17 Stunden von tar 8 / 364
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 284
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 527

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

Regex in where
vor 17 Stunden von tar 8 / 364
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 284
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 527

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 221
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3403
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9953