%SYSERR
Return the status code from the last system call
WSupported on Windows
|
USupported on Unix
|
VSupported on OpenVMS
|
NSupported in Synergy .NET
|
status = %SYSERR
Return value
status
The operating system error code from the last system call performed by the runtime. (i)
Discussion
%SYSERR is a partial alternative to the ERROR subroutine.
Note that if an error is trapped and your program performs I/O operations or calls an XCALL that requires system service before it calls %SYSERR, when %SYSERR is finally called, it contains the “success” status code from the I/O operation or XCALL, rather than the failure code from the last error.
All I/O statements, some other statements, and many subroutines update the value returned by %SYSERR. When a system error is detected, we recommend that you use %SYSERR to capture the error immediately, before it is updated by subsequent statements and subroutines, and then store it in a local variable for later processing. |
On Synergy .NET, %SYSERR is only used for the system error code for system-supplied subroutines, functions, and I/O statements.
Consider using %IO_ERROR as a substitute for %SYSERR.
Examples
reads(chan, data) [err=ioerr] return ioerr, writes(1, "system error: " = %hex(%syserr))