RESIGNAL() Subroutine

Purpose

Continues to search for another ON-unit to handle a condition.

Syntax

CALL RESIGNAL();

Description

In Open PL/I, an ON-unit can determine that it does not want to handle a condition and can subsequently request that, instead of returning control to the point of interruption, Open PL/I continue to search for another ON-unit to handle the condition. The RESIGNAL built-in subroutine is available for this purpose.

CALL RESIGNAL() is used in an ON-unit to pass the signaled condition back to the run-time system so that it can look for another ON-unit to handle the condition. The condition is passed at the end of the current ON-unit, that is, execution of the RESIGNAL does not immediately cause a return to the run-time system, but merely sets up the conditions so that when the ON-unit completes its execution and returns, the run-time system will continue searching for another ON-unit that matches the signaled condition.

Examples

ON ERROR BEGIN;
 PUT SKIP LIST('AN UNIDENTIFIED ERROR OCCURRED IN GETREC'); 
 CALL RESIGNAL();
END;

Restrictions

None.