Exception ?

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

Exception ?

Beitrag von simethandreas (ForumUser / 26 / 0 / 0 ) »
Hallo,
mit

Code: Alles auswählen.

go_sdescr ?= cl_abap_structdescr=>describe_by_name( input-tabellenname ).
gd_tabnam     = go_sdescr->get_relative_name( ).
lese ich eine Tabelle ein...das funktioniert auch soweit...außer die in "input-tabellenname" angegebene Tabelle existiert nicht.

Dann kommt beim Ausführen der Fehler:
Runtime Errors RAISE_EXCEPTION
Exception condition "TYPE_NOT_FOUND" raised.

Wie kann ich den Fall, dass die Tabell nicht vorhanden ist behandeln?
Irgendwie mit try..catch ?

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


Re: Exception ?

Beitrag von Tron (Top Expert / 1327 / 35 / 331 ) »
Moin,
in "meinem" System gibt es die Methode describe_by_name nicht, aber schau doch mal mit SE24 nach, ob überhaupt Exceptions zur Methode deklariert sind.
gruß Tron
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Exception ?

Beitrag von simethandreas (ForumUser / 26 / 0 / 0 ) »
Also ich hab die Methode schon :) funktioniert ja auch alles, außer natürlich die Tabelle is nicht vorhanden
in der methode is ne case-anweisung...im falle das die tabelle nicht existiert führt er das aus:

Code: Alles auswählen.

raise type_not_found.
is dann type_not_found meine exception? wie muss ich damit umgehn?

Re: Exception ?

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Tron hat geschrieben:Moin,
in "meinem" System gibt es die Methode describe_by_name nicht, aber schau doch mal mit SE24 nach, ob überhaupt Exceptions zur Methode deklariert sind.
gruß Tron
die Methode DESCRIBE_BY_NAME wird doch von der Klasse CL_ABAP_TYPEDESCR geerbt...

Zum Abfangen der Exception kann man leider die funtionale Schreibweise mit Casting nicht verwenden. Daher muss man den Umweg gehen, die 'klassischere' Schreibweise zu benutzen, was jedoch leider auch bedeutet, dass man das Casten erst nachträglich machen kann:

Code: Alles auswählen.

DATA:
  go_sdescr TYPE REF TO cl_abap_structdescr,
  go_tdescr TYPE REF TO cl_abap_typedescr.

  cl_abap_structdescr=>describe_by_name(  
    EXPORTING 
      p_name = input-tabellenname 
    RECEIVING 
      p_descr_ref = go_tdescr "kein CASTING hier erlaubt
    EXCEPTIONS 
      type_not_found = 1
      OTHERS = 2 ).
  IF sy-subrc EQ 0.
    go_sdescr ?= go_tdescr.
  ENDIF.
oder ganz klassisch

Code: Alles auswählen.

DATA:
  go_sdescr TYPE REF TO cl_abap_structdescr,
  go_tdescr TYPE REF TO cl_abap_typedescr.

  CALL METHOD cl_abap_structdescr=>describe_by_name
    EXPORTING 
      p_name = input-tabellenname 
    RECEIVING 
      p_descr_ref = go_tdescr "kein CASTING hier erlaubt
    EXCEPTIONS 
      type_not_found = 1
      OTHERS = 2.
  IF sy-subrc EQ 0.
    go_sdescr ?= go_tdescr.
  ENDIF.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Exception ?

Beitrag von simethandreas (ForumUser / 26 / 0 / 0 ) »
Dann bekomm ich aber die meldung:
the type of "go_tdescr" cannot be converted into the type of "p_descr_ref"
:(

Re: Exception ?

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
simethandreas hat geschrieben:Dann bekomm ich aber die meldung:
the type of "go_tdescr" cannot be converted into the type of "p_descr_ref"
:(
hat go_tdescr den Typ 'TYPE REF TO cl_abap_typedescr'?

Wie sieht denn Dein Coding aus?

PS:
habe es gerade mal in unserem ECC6.0-System kontrolliert und dort bekomme ich keinen Fehler.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Exception ?

Beitrag von simethandreas (ForumUser / 26 / 0 / 0 ) »
hm ne...hat TYPE REF TO cl_abap_tabledescr
aber wenn ich ihn nach 'TYPE REF TO cl_abap_typedescr' änder, hauts mir im weiteren coding nicht mehr hin

Re: Exception ?

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
simethandreas hat geschrieben:hm ne...hat TYPE REF TO cl_abap_tabledescr
aber wenn ich ihn nach 'TYPE REF TO cl_abap_typedescr' änder, hauts mir im weiteren coding nicht mehr hin
Nun, cl_abap_tabledescr ist ja auch nicht cl_abap_typedescr! Das Erste beschreibt eine Tabelle, das Zweite einen elementaren Typen, was auch der Rückgabetyp der Methode describe_by_name ist.

Ohne zu sehen, wie Dein Coding aussieht, kann ich nicht abschätzen, was Du im weiteren Verlauf Deines Programmes mit der Variablen go_tdescr anstellst.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Re: Exception ?

Beitrag von simethandreas (ForumUser / 26 / 0 / 0 ) »
jetzt gehts.
da ich go_tdescr wegen dem weiteren programmablauf mit TYPE REF TO cl_abap_tabledescr deklarieren muss, hab ich einfach ne neue variable angelegt und dei mit cl_abap_typedescr deklariert

Seite 1 von 1

Vergleichbare Themen

8
Antw.
341
Views
Exception - MSG
von HH_ABAP » 20.06.2023 08:15 • Verfasst in ABAP® für Anfänger
2
Antw.
2501
Views
BSP Exception
von Moksha » 04.03.2005 12:14 • Verfasst in Web-Dynpro, BSP + BHTML
1
Antw.
1839
Views
Exception in BOR Methode
von winter06 » 04.03.2007 19:48 • Verfasst in ABAP Objects®
11
Antw.
1214
Views
Langtext zur Exception
von ralf.wenzel » 28.05.2019 09:26 • Verfasst in ABAP® Core
1
Antw.
2343
Views
com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION
von cschmoel » 18.10.2012 09:12 • Verfasst in Basis

Über diesen Beitrag


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

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.