Page 1 of 1

Ausnahme-Klasse mit RESUME zum Zeitpunkt AT SELECTION-SCREEN

PostPosted: Tue May 08, 2012 1:08 pm
by Dian3368
Irgendwas an meinem Coding funktioniert einfach nicht :cry:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. REPORT  zea_tmpca001.
  2.   h_string    TYPE string,
  3.   ref_exc     TYPE REF TO zcx_mvk.
  4. *
  5. PARAMETER: pa_test TYPE xtest DEFAULT 'X'.
  6. *
  7. AT SELECTION-SCREEN.
  8. *
  9.   TRY.
  10. *
  11. *--* Prüfung 1 *-------------------------------------------------------*
  12. *
  13.       PERFORM do_check USING    1.
  14. *
  15. *--* Prüfung 2 *-------------------------------------------------------*
  16. *
  17.       PERFORM do_check USING    2.
  18. *
  19. *--* Prüfung 3 *-------------------------------------------------------*
  20. *
  21.       PERFORM do_check USING    3.
  22. *
  23.     CATCH BEFORE UNWIND zcx_mvk INTO ref_exc.
  24.       MESSAGE ref_exc TYPE 'W'.
  25.       IF ref_exc->is_resumable = 'X'.
  26.         RESUME.
  27.       ENDIF.
  28.   ENDTRY.
  29. *
  30. *
  31.   WRITE: / sy-subrc.
  32. *
  33. *&---------------------------------------------------------------------*
  34. *&      Form  DO_CHECK
  35. *&---------------------------------------------------------------------*
  36. *
  37. FORM do_check  USING    pi_zahl TYPE i
  38.                RAISING  resumable(zcx_mvk).
  39. *
  40.   TRY.
  41.     CASE pi_zahl.
  42.       WHEN 1.
  43.         h_string = 'Meldung Prüfung 1'.
  44.       WHEN 2.
  45.         h_string = 'Prüfung 2 angestoßen'.
  46.       WHEN 3.
  47.         h_string = 'jetzt kommt Prüfung 3'.
  48.     ENDCASE.
  49. *
  50.     RAISE RESUMABLE EXCEPTION TYPE zcx_mvk
  51.       EXPORTING
  52.         textid   = zcx_mvk=>msgtext
  53.         h_string = h_string.
  54.   ENDTRY.
  55. *
  56. ENDFORM.                    " DO_CHECK
GeSHi ©


Wenn ich es ausführe bekomme ich die erste Meldung als Warning wie es sein soll, aber dann sofort die Ausnahme CX_SY_ILLEGAL_HANDLER, obwohl im Feld ref_exc->is_resumable ein 'X' steht. Laut Dump ist die IF-Abfrage schon der Auslöser. Was mache ich falsch?

Re: Ausnahme-Klasse mit RESUME zum Zeitpunkt AT SELECTION-SC

PostPosted: Fri Jul 13, 2012 1:03 pm
by Dian3368
Keine Experten hier?

Re: Ausnahme-Klasse mit RESUME zum Zeitpunkt AT SELECTION-SC

PostPosted: Tue Apr 16, 2013 8:28 am
by Giuliano508
Hallo zusammen,
da ich gerade über dasselbe Problem gestolpert bin, schreibe ich hier noch mal die Lösung für die nachfolgenden Generationen hin ;-)

Das Problem liegt hier an dem Message Statement, scheinbar wird damit schon die Terminierung des Behandlers eingeleitet und ein RESUME ist nicht mehr möglich. Ich habe das jetzt so gelöst, dass ich mir die Nachrichten merke und diese dann nach dem TRY-Block ausgebe.

Vielleicht hilft das ja nochmal wem.

Viele Grüße
Sascha

Re: Ausnahme-Klasse mit RESUME zum Zeitpunkt AT SELECTION-SC

PostPosted: Tue Apr 16, 2013 9:26 am
by Dian3368
Super!
Das war wirklich des Rätsels Lösung - Vielen Dank für den Hinweis!