dev_get_exception_data
— Ermöglicht den Zugriff auf definierte Elemente eines Exception-Tupels.
Der Operator dev_get_exception_data
erlaubt den Zugriff auf
definierte Elemente eines mit catch
gefangenen Exception-Tupels.
Bis auf den Fehlercode, der immer an der ersten Stelle des Exception-Tupels
steht, müssen alle anderen Daten des Exception-Tupels mittels
dev_get_exception_data
abgefragt werden, da sich die Reihenfolge
und der Umfang der bereitgestellten Informationen unter Umständen in
zukünftigen Versionen ändern und sich beim exportierten Code von Sprache
zu Sprache unterscheiden kann.
In HDevelop und HDevEngine enthält das Exception-Tupel, das an den
Parameter Exception
übergeben wird, bei einem Operatorfehler
die nachfolgend aufgelisteten Daten.
Dabei ist der Slot-Name an den Parameter Name
zu übergeben,
die gewünschte Information wird in Value
zurückgeliefert.
Es können auch mehrere Slots gleichzeitig abgefragt werden.
In diesem Fall ist ein Tupel mit den Slotnamen zu übergeben, in
Value
wird ein entsprechendes Tupel mit den angeforderten Daten
zurückgeliefert.
Ist eine gewünschte Information nicht verfügbar, wird als Ergebnis für
diesen Wert ein leerer String ('' ) zurückgeliefert.
Der Operator dev_get_exception_data
ist nur für die Verwendung
in HDevelop und HDevEngine gedacht. Manche Informationen sind nicht
verfügbar, wenn der Operator exportiert wird.
HALCON- oder benutzerdefinierter Fehlercode. Die HALCON-Fehlercodes (Codes < 10000) werden im Anhang des „Extension Package Programmer's Manual“ aufgelistet.
Zusätzlicher HDevelop-spezifischer Fehlercode, der darüber informiert, ob der Fehler innerhalb des HALCON-Operators generiert wurde (Fehlercode = 21000), oder ob er bereits bei der Übergabe der Parameter, d.h. bei der Auswertung der Parameterausdrücke aufgetreten ist. Im zweiten Fall wird mit diesem Fehlercode die Art des Fehlers genauer spezifiziert. Die relevanten HDevelop-Fehlercodes sind unten aufgelistet.
HALCON-Fehlertext.
Fehlertext, der HDevelop-spezifischen Fehler beschreibt.
Zeilennummer, in der der Fehler aufgetreten ist.
Name des Operators (tritt der Fehler in einer geschützten Prozedur auf, wird '--protected--' zurückgeliefert).
Aufruftiefe ('main' hat die Tiefe 1).
Name der Prozedur.
Benutzerdefiniertes Exception-Tupel - das sind die Daten, die beim
Weiterwerfen einer Operatorfehler-Exception an das Exception-Tupel
hinten angehängt wurden, bzw. die Daten, die bei einer
benutzerdefinierten Exception hinter dem Fehlercode (>= 30000)
folgen.
Enthält das Exception-Tupel keine benutzerdefinierten Daten, wird
ein leeres Tupel zurückgeliefert.
Achtung: Diese Daten können nicht zusammen mit anderen Informationen
in einem dev_get_exception_data
-Aufruf abgefragt werden.
Exception
(input_control) exception-array →
(integer / string)
Tupel mit den Fehlerdaten oder eigenen Fehlercodes.
Name
(input_control) attribute.name(-array) →
(string)
Namen der gewünschten Fehlerdaten.
Defaultwert: 'error_code'
Werteliste: 'add_error_code' , 'add_error_message' , 'call_stack_depth' , 'error_code' , 'error_message' , 'operator' , 'procedure' , 'program_line' , 'user_data'
Value
(output_control) attribute.value-array →
(integer / string)
Angeforderte Fehlerdaten.
Sind die Parameterwerte korrekt, dann liefert
dev_get_exception_data
(als Operator) den Wert 2 (H_MSG_TRUE).
Andernfalls wird eine Fehlerbehandlung durchgeführt und ein Fehlercode
zurückgeliefert.
try
,
catch
,
endtry
,
throw
,
dev_set_check
Foundation