Error conditions are injected into the dispatching system by the signal or error function. These two functions operate similarly; the only difference is that error never returns, wheras signal may return, depending on the handler that is in place.
On the receiving end, errors are caught by functions and bodies introduced by the handler-case and handler-bind forms. The former is more commonly used, but imposes the semantics of terminating handlers. handler-bind is more flexible, and can support calling semantics for its handlers.