Hallo,
ich habe einen Report, der bestimmte Daten analysiert und entsprechende Aktionen macht. Es gibt nun eine Catch-Anweisung, in die der Report springt, sobald die zu analysierenden Daten einen Fehler haben. Der Report bricht dann ab. Ich möchte nun aus dem Catch irgendwie zurückkehren, sodass der Report nicht abbricht, sondern in solchen Fällen einfach mit dem nächsten Datensatz weitermacht, die fehlerhaften Datensätze also einfach überspringt. Wie geht das am besten?
Muss man anstatt einer RAISE EXCEPTION eher irgendein Return einbauen?
wie schaut denn die Anweisung exakt aus ? - denn meist ist das Ganze ja so eingebettet
TRY.
...
RAISE EXCEPTION TYPE ...
CATCH (klassenbasierte Ausnahme) INTO exc.
text = exc->get_text( ).
MESSAGE text TYPE 'I'. -> und wenn da Message Type A oder E steht bricht es ab und hier könnte man eine eigene Bearbeitung des Fehlers einbauen
ENDTRY.
Das ist der Code-Auschnitt. Bei dem Raise Exception dump er. Ich möchte jetzt also eine Anpassung dort so vornehmen, dass er nicht dumpt, sondern einfach weiter macht im Programm und diesen Schritt überspringt. Wie mache ich das also am einfachsten?
Einfach das "RAISE EXCEPTION lx_data_check." weglassen
Oder im Code der dieses (Unter-)Programm/Methode aufruft ebenfalls ein TRY ... CATCH ... einbauen.
Dann wird zwar alles was nach dem "RAISE EXCEPTION lx_data_check." kommt nicht mehr ausgeführt, es kommt aber auch kein Kurzdump.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.