Wählen Sie oben rechts eine andere Programmiersprache aus.

Wählen Sie oben rechts eine andere Programmiersprache aus.

Wählen Sie oben rechts eine andere Programmiersprache aus.

dev_get_exception_dataT_dev_get_exception_dataDevGetExceptionDataDevGetExceptionData (Operator)

Name

dev_get_exception_dataT_dev_get_exception_dataDevGetExceptionDataDevGetExceptionData — Ermöglicht den Zugriff auf definierte Elemente eines Exception-Tupels.

Signatur

dev_get_exception_data( : : Exception, Name : Value)

Herror T_dev_get_exception_data(const Htuple Exception, const Htuple Name, Htuple* Value)

void DevGetExceptionData(const HTuple& Exception, const HTuple& Name, HTuple* Value)

static void HOperatorSet.DevGetExceptionData(HTuple exception, HTuple name, out HTuple value)

Beschreibung

Der Operator dev_get_exception_datadev_get_exception_dataDevGetExceptionDataDevGetExceptionDataDevGetExceptionData erlaubt den Zugriff auf definierte Elemente eines mit catchcatchCatchCatchCatch 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_datadev_get_exception_dataDevGetExceptionDataDevGetExceptionDataDevGetExceptionData 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 ExceptionExceptionExceptionExceptionexception übergeben wird, bei einem Operatorfehler die nachfolgend aufgelisteten Daten. Dabei ist der Slot-Name an den Parameter NameNameNameNamename zu übergeben, die gewünschte Information wird in ValueValueValueValuevalue zurückgeliefert. Es können auch mehrere Slots gleichzeitig abgefragt werden. In diesem Fall ist ein Tupel mit den Slotnamen zu übergeben, in ValueValueValueValuevalue 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_datadev_get_exception_dataDevGetExceptionDataDevGetExceptionDataDevGetExceptionData ist nur für die Verwendung in HDevelop und HDevEngine gedacht. Manche Informationen sind nicht verfügbar, wenn der Operator exportiert wird.

'error_code'"error_code""error_code""error_code""error_code":

HALCON- oder benutzerdefinierter Fehlercode. Die HALCON-Fehlercodes (Codes < 10000) werden im Anhang des „Extension Package Programmer's Manual“ aufgelistet.

'add_error_code'"add_error_code""add_error_code""add_error_code""add_error_code":

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.

'error_message'"error_message""error_message""error_message""error_message":

HALCON-Fehlertext.

'add_error_message'"add_error_message""add_error_message""add_error_message""add_error_message":

Fehlertext, der HDevelop-spezifischen Fehler beschreibt.

'program_line'"program_line""program_line""program_line""program_line":

Zeilennummer, in der der Fehler aufgetreten ist.

'operator'"operator""operator""operator""operator":

Name des Operators (tritt der Fehler in einer geschützten Prozedur auf, wird '--protected--' zurückgeliefert).

'call_stack_depth'"call_stack_depth""call_stack_depth""call_stack_depth""call_stack_depth":

Aufruftiefe ('main' hat die Tiefe 1).

'procedure'"procedure""procedure""procedure""procedure":

Name der Prozedur.

'user_data'"user_data""user_data""user_data""user_data":

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_datadev_get_exception_dataDevGetExceptionDataDevGetExceptionDataDevGetExceptionData-Aufruf abgefragt werden.

Parameter

ExceptionExceptionExceptionExceptionexception (input_control)  exception-array HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Tupel mit den Fehlerdaten oder eigenen Fehlercodes.

NameNameNameNamename (input_control)  attribute.name(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der gewünschten Fehlerdaten.

Defaultwert: 'error_code' "error_code" "error_code" "error_code" "error_code"

Werteliste: 'add_error_code'"add_error_code""add_error_code""add_error_code""add_error_code", 'add_error_message'"add_error_message""add_error_message""add_error_message""add_error_message", 'call_stack_depth'"call_stack_depth""call_stack_depth""call_stack_depth""call_stack_depth", 'error_code'"error_code""error_code""error_code""error_code", 'error_message'"error_message""error_message""error_message""error_message", 'operator'"operator""operator""operator""operator", 'procedure'"procedure""procedure""procedure""procedure", 'program_line'"program_line""program_line""program_line""program_line", 'user_data'"user_data""user_data""user_data""user_data"

ValueValueValueValuevalue (output_control)  attribute.value-array HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Angeforderte Fehlerdaten.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert dev_get_exception_datadev_get_exception_dataDevGetExceptionDataDevGetExceptionDataDevGetExceptionData (als Operator) den Wert 2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung durchgeführt und ein Fehlercode zurückgeliefert.

Vorgänger

catchcatchCatchCatchCatch

Siehe auch

trytryTryTryTry, catchcatchCatchCatchCatch, endtryendtryEndtryEndtryEndtry, throwthrowThrowThrowThrow, dev_set_checkdev_set_checkDevSetCheckDevSetCheckDevSetCheck

Modul

Foundation