Return error codes from a top-level function
- Last Updated: March 30, 2020
- 1 minute read
- OpenEdge
- Version 12.2
- Documentation
There are two ways to return errors from a top-level function:
- Return from your top-level function with a non-zero value. ABL receives the non-zero value
from
PRODSP()and raises an error condition. - Before returning from your top-level function, set an ABL shared variable to a specific value using an HLC library function.
If you use the first technique, the PRODSP() dispatch routine returns a long
data type value to ABL. ABL uses this value as a return code to determine whether the HLC
routine dispatched by PRODSP() was successful. If the return code is 0, ABL
considers the routine successful and continues processing. If the return code is non-zero, ABL
considers the routine unsuccessful and raises an error condition.
The FUNCTEST macro ensures that the value returned from your top-level
function is passed on as the return code of PRODSP(). However, you must make
sure that your top-level function returns an appropriate value for the return code. For
example, when your top-level function runs successfully, make sure that the last statement
executes the equivalent of the following:
|
If you use the second method, you can set unique error codes that you can test from ABL and respond to each type of error as needed.
The first technique provides an efficient way to return to ABL when your HLC function encounters an unexpected error, such as an unsuccessful HLC library call. The second technique provides more fine-grained error processing, and allows your ABL procedure to handle conditions specific to your application.