An exception is an indication that an exceptional or unusual circumstance has arisen during rules processing, for example if you have inadequate security on a table when attempting to access it. When an exception is encountered during rules processing, a signal can be raised by TIBCO Object Service Broker or by a user-written rule to change the flow of a program. If TIBCO Object Service Broker handles the exception, a system exception is issued. If the user-written rule handles the exception, either a system exception or a user-defined exception can be issued.
As previously stated, the TIBCO Object Service Broker runtime environment signals system exceptions to permit an application to recover from an error. System exceptions form a hierarchy of names as shown in the following illustration.
Three levels of system exceptions are defined, and an exception traps any of the exception names that are below it in the hierarchy. The ERROR exception is at the highest level and traps all detectable errors that can be handled by an exception handler, whereas an exception such as GETFAIL traps only an error that occurs when a table occurrence is not found on the execution of a GET statement.
In some cases, statements comprising an exception handler could raise the same exception. In these cases, if the second exception is not handled somewhere lower in the calling hierarchy, the currently executing handler does not handle the second exception. The rules executor detects a possible infinite loop condition and aborts the transaction.