The exception list tree is a part of the logical message tree in which the message flow writes information about exceptions that occur when a message is processed.
The root of the exception list tree is called ExceptionList, and the tree consists of a set of zero or more exception descriptions. The exception list tree is populated by the message flow if an exception occurs. If no exception conditions occur during message flow processing, the exception list that is associated with that message consists of a root element only. This list is, in effect, an empty list of exceptions.
The exception list tree can be accessed by other nodes in the message flow that receive the message after the exception has occurred. You can modify the contents of the exception list tree only in a node that provides an interface to modify the outbound message tree; for example, the Compute node.
If an exception condition occurs, message processing is suspended and an exception is thrown. Control is passed back to a higher level; that is, an enclosing catch block. An exception list is built to describe the failure condition, and the whole message, together with the local environment tree, and the newly-populated exception list, is propagated through an exception-handling message flow path.
The following figure shows the structure of the exception list tree for a recoverable exception:
The exception description structure can be both repeated and nested to produce an exception list tree. In this tree:
The children in the tree take the form of a number of name-value elements that give details of the exception, and zero or more name elements whose name is Insert. The NLS (National Language Support) message number identified in a name-value element identifies an IBM® Integration Bus error message. The Insert values are used to replace the variables in this message and provide further detail about the cause of the exception.
The name-value elements in the exception list shown in the figure above are described in the following table.
Name | Type | Description | |
---|---|---|---|
File1 | String | C++ source file name | |
Line1 | Integer | C++ source file line number | |
Function1 | String | C++ source function name | |
Type2 | String | Source object type | |
Name2 | String | Source object name | |
Label2 | String | Source object label | |
Text1 | String | Optional non-NLS text | |
Catalog3 | String | NLS message catalog name4 | |
Severity3 | Integer | 1 = information |
|
Number3 | Integer | NLS message number4 | |
Insert3 | Type | Integer | The data type of the value: 0 = Unknown |
Text | String | The data value |
When the message flow processing is complete, the exception list tree is discarded.