When a procedure encounters an error—either a
GDSCODE error, or user-defined exception—all statements since the last
SUSPEND are undone.
Since select procedures can have multiple
SUSPENDs, possibly inside a loop statement, only the actions since the last
SUSPEND are undone. Since executable procedures should not use
SUSPEND, when an error occurs the entire executable procedure is undone (if
EXIT is used, as recommended).