<fault action>
──<statement>──────────────────────────────────────────────────────────┤
The form of the ON statement that includes a comma, instead of a colon (:), before the fault action is the implicit call form. With this form of ON statement, when a specified fault occurs, the program calls the fault action statement as a procedure. If the fault action statement does a bad GO TO, the fault condition is discarded and the program continues running.
When a bad GO TO branches to a label outside the block in which the fault occurred, the block is terminated. When it branches out of the fault action statement into the block in which the fault occurred, the block continues to run.
If the fault action statement exits without doing a bad GO TO, the fault condition for which the fault action statement was called still exists. If an ON statement is enabled for that condition in a more global block, then control is passed to that ON statement; otherwise, the program is discontinued as a result of that fault.
A GO TO statement cannot be executed from outside the fault action statement to a label inside the fault action statement. Undefined results occur when a GO TO statement specifies a label passed as a parameter (a formal label).
The form of the ON statement that includes a colon, instead of a comma, before the fault action is the implicit branch form of the ON statement. With this form of ON statement, the program branches to the statement given as the fault action when a specified fault occurs. The fault condition is discarded, as though it had never happened, and the program continues execution at the first statement of the fault action. When there is no branch out of the fault action statement, the program flow continues with the next statement following it. When the ON statement is in the block in which the fault occurred, it permits that block to continue to run.

