Whenever a remote procedure call returns a Unix error code (such askern_return_t), it is usually prudent to check that code to
see if the call was successful. To relieve the programmer of the
hassle of testing this value himself, and to centralize the
information about the meaning of non-success return codes, CMU Common
Lisp provides a number of macros and functions. See also
(page )get-unix-error-msg.
[Function]
system: gr-error
function gr &optional context
Signals a Lisp error, printing a message indicating that the call to the specified function failed, with the return code gr. If supplied, the context string is printed after the function name and before the string associated with the gr. For example:
Error in function GR-ERROR: NUKEGARBAGE lost big, no space. Proceed cases: 0: Return to Top-Level. Debug (type H for help) (Signal #<Conditions:Simple-Error.5FDE0>) 0]
[Macro]
system: gr-call
function &rest args
system:gr-call* function &rest args
These macros can be used to call a function and automatically check the GeneralReturn code and signal an appropriate error in case of non-successful return. gr-call returns nil if no error occurs, while gr-call* returns the second value of the function called.
[Macro]
system: gr-bind
(var)
(function
arg)
form
This macro can be used much like multiple-value-bind to bind the vars to return values resulting from calling the function with the given args. The first return value is not bound to a variable, but is checked as a GeneralReturn code, as in gr-call.