Es sei denn, die neue Klasse ist eine Subklasse der bestehenden, denn auch bei den Ausnahmeklassen funktioniert die Vererbung.ewx hat geschrieben:Vorteil von Variante 2 ist, dass du einfach einen neuen Fehlerfall einbauen kannst, ohne dass du die aufrufenden Klassen ändern musst. In denen müsstest du ja eine neue Ausnahmeklasse abfangen.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
RIG
RIG hat geschrieben:Noch eine Frage:
Kann ich auch mehrere Nachrichten mitgeben wenn mir der Langtext nicht ausreicht?
Bzw. wenn ich eine Ausnahmeklasse mit Nachrichtenklasse anlge und bei der Nachricht den Haken bei Selbsterklärend raus nehme, hilft mir das dann weiter?
Viele Grüße aus dem Pott
Noch eine Frage dazu:ewx hat geschrieben:Du musst mit Ausnahmeklassen arbeiten. Dort hat jede Ausnahmeklasse die Methode GET_SOURCE_POSITION.
Das sind die "Namen" der Methoden-Includes. Wenn du z.B. in der SE38 diese eingibst, gelangst du direkt zu der entsprechenden Methode. Das sollte eigentlich reichen.RIG hat geschrieben:Wird die Ausnahme in einer Methode einer Klasse ausgelöst, bekomme ich leider nicht den Namen der Methode zurück geliefert. Mach ich da noch was falsch oder ist das leider so.
PROG_NAME ZCL_TEST======================CP
INCLUDE_NAME ZCL_TEST======================CM001
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
RIG
a-dead-trousers hat geschrieben:Das sind die "Namen" der Methoden-Includes. Wenn du z.B. in der SE38 diese eingibst, gelangst du direkt zu der entsprechenden Methode. Das sollte eigentlich reichen.RIG hat geschrieben:Wird die Ausnahme in einer Methode einer Klasse ausgelöst, bekomme ich leider nicht den Namen der Methode zurück geliefert. Mach ich da noch was falsch oder ist das leider so.
PROG_NAME ZCL_TEST======================CP
INCLUDE_NAME ZCL_TEST======================CM001
lg ADT
EDIT: Nach einigem Suchen --> CL_OO_CLASSNAME_SERVICE bietet diverse Methoden zur Namensbestimmung an. Darunter auch GET_METHOD_BY_INCLUDE.
Getestet und ebenfalls für gut befunden.ewx hat geschrieben:Du kannst beliebig viele (??) Platzhalter definieren (als Attribute) und diese beim RAISE mitgeben.
Den Fehlertext kannst du ebenfalls beliebig lang (??) machen und dort die Platzhalter von & umgeben eintragen.
http://musicodez.wordpress.com/2010/09/ ... exception/