If an error occurs at run time, a message appears on the terminal.
You can use Open PL/I's ON statement to develop handlers for the conditions that can occur in your program. The ON ERROR statement can be used for arbitrary errors. The ONLOC built-in function can be used in an ON-unit to report the name of an entry in which a condition was raised, and the ONCODE built-in function can be used to report the status value of a run-time error.
If an error is not caught by an ON-unit, Open PL/I displays the source file and line number where the error occurred. For these features to work, however, you must have compiled the source file with the default option -unixdebug.
This feature is currently available only in the Sun Solaris 2 and IBM AIX versions of Open PL/I.
When a fatal error condition occurs at run time, a message is displayed naming the condition that has been raised; the program address where this occurred; and the source file, entry, and line number at which the condition was raised, as well as the lines in each procedure above it in the call stack. For example:
*** Condition ERROR raised ***Unhandled condition ZERODIVIDE at PC=00010233 CALCDIV line 26 in /dirl/dir2/calcs.pl1 SUBR3 line 444 in /dirl/dir2/subprog.pl1 MYPROG line 871 in /dirl/dir2/mainprog.pl1
If you have compiled your program using the -nounixdebug option, only the program address where the condition was raised will be displayed:
*** Condition ERROR raised *** Unhandled condition ZERODIVIDE at PC=00010233