IBM AS/400 Frozen Dessert Maker User Manual


 
ILE Condition Handlers
ILE Condition Handlers
ILE condition handlers are exception handlers that are registered at run time
using the Register ILE Condition Handler (CEEHDLR) bindable API. They are used
to handle, percolate or promote exceptions. The exceptions are presented to the
condition handlers in the form of an ILE condition. You can register more than one
ILE condition handler. ILE condition handlers may be unregistered by calling the
Unregister ILE Condition Handler (CEEHDLU) bindable API.
There are several reasons why you might want to use an ILE condition handler:
You can bypass language-specific handling by handling the exception in your
own handler.
This enables you to provide the same exception handling mechanism in an
application with modules in different ILE HLLs.
You can use this API to scope exception handling to a call stack entry.
The ILE bindable API CEEHDLR is scoped to the invocation that contains it. It
remains in effect until you unregister it, or until the procedure returns.
Note: Any call to the CEEHDLR API from any detail, total or subroutine calcu-
lation will make the condition handler active for the entire procedure,
including all input, calculation, and output operations. However, it will
not affect subprocedures, nor will a subprocedure calling CEEHDLR
affect the main procedure.
If a subprocedure is called recursively, only the invocation that calls CEEHDLR
is affected by it. If you want the condition handler active for every invocation,
then CEEHDLR must be called by each invocation.
For information on how to use ILE condition handlers, refer to
ILE Concepts
.
Using a Condition Handler
The following example shows you how to:
1. Code a condition handler to handle the RPG 'out-of-bounds' error
2. Register a condition handler
3. Deregister a condition handler
4. Code a *PSSR error subroutine.
The example consists of two procedures:
RPGHDLR, which consists of a user-written condition handler for out-of-bound
substring errors
SHOWERR, which tests the RPGHDLR procedure.
While SHOWERR is designed primarily to show how RPGHDLR works, the two
procedures combined are also useful for determining 'how' ILE exception handling
works. Both procedures write to QSYSPRT the 'actions' which occur as they are
processed. You might want to modify these procedures in order to simulate other
aspects of ILE exception handling which you would like to explore.
Figure 116 on page 239 shows the source for the procedure RPGHDLR. The pro-
| cedure defines three procedure parameters: an ILE condition token structure, a
238 ILE RPG for AS/400 Programmer's Guide