IBM AS/400 Frozen Dessert Maker User Manual


 
5. The ENDSR operation receives control, and the procedure is canceled.
The approach used here to avoid looping can also be used within an INFSR error
subroutine.
Specifying a Return Point in the ENDSR Operation
When using an INFSR or *PSSR error subroutine in a main procedure, you can
indicate the return point at which the program will resume processing, by entering
one of the following as the Factor 2 entry of the ENDSR statement. The entry must
be a six-position character field, literal, named constant, array element, or table
name whose value specifies one of the following return points.
Note: If the return points are specified as literals, they must be enclosed in apos-
trophes and entered in uppercase (for example, *DETL, not *detl). If they
are specified in fields or array elements, the value must be left-adjusted in
the field or array element.
*DETL Continue at the beginning of detail lines.
*GETIN Continue at the get input record routine.
*TOTC Continue at the beginning of total calculations.
*TOTL Continue at the beginning of total lines.
*OFL Continue at the beginning of overflow lines.
*DETC Continue at the beginning of detail calculations.
*CANCL Cancel the processing of the program.
Blanks Return control to the ILE RPG default exception handler. This will occur
when Factor 2 is a value of blanks
and
when Factor 2 is not specified. If
the subroutine was called by the EXSR operation and Factor 2 is blank,
control returns to the next sequential instruction.
After the ENDSR operation of the INFSR or the *PSSR subroutine is run, the ILE
RPG compiler resets the field or array element specified in Factor 2 to blanks.
Because Factor 2 is set to blanks, you can specify the return point within the sub-
routine that is best suited for the exception that occurred.
If this field contains blanks at the end of the subroutine, the ILE RPG default excep-
tion handler receives control following the running of the subroutine, unless the
INFSR or the *PSSR subroutine was called by the EXSR operation. If the subrou-
tine was called by the EXSR operation and Factor 2 of the ENDSR operation is
blank, control returns to the next sequential instruction following the EXSR opera-
tion.
Note: You cannot specify a factor 2 entry for an ENDSR in a subprocedure. If you
want to resume processing in the subprocedure, you have to use a GOTO
operation to a TAG in the body of the subprocedure. Alternatively, you can
code a RETURN operation in the *PSSR. The subprocedure will then return
to the caller.
Chapter 12. Handling Exceptions 237