action
signal (to destination)? throw catch-name catch-parameter* signal (to destination)? rethrow
The signal
action is used to send a signal to a destination.
The destination, if specified, must be a reference to a sink
or
a source
. If no destination is specified, the signal will be sent to
#current-output
.
The signal throw
action behaves as the action throw
, except the throw happens in
destination instead of in the current scope. The signal rethrow
variant can be used within a
catch
clause to resend the caught exception to another destination.
All signals sent to #suppress
are silently suppressed. Otherwise, if the destination is a
non-coroutine sink or source, like #main-input
for example, the signal
action raises a
#program-error
.
If destination is a coroutine that cannot catch the exception, the exception propagates to the
coroutine's parent. If none of the destination coroutine's ancestors can catch the exception, the
signal
action raises a #program-error
instead.