stop()
, warning()
and
message()
, but the type
argument makes
it easy to create subclassed conditions. They also don't include
call information by default. This saves you from typing
call. = FALSE
to make error messages cleaner within package
functions.
abort(msg, type = NULL, call = FALSE)
warn(msg, type = NULL, call = FALSE)
inform(msg, type = NULL, call = FALSE)
stop()
and cnd_abort()
, abort()
signals a critical condition and interrupts execution by jumping to
top level (see rst_abort()
). Only a handler of the
relevant type can prevent this jump by making another jump to a
different target on the stack (see with_handlers()
).warn()
and inform()
both have the side effect of
displaying a message. These messages will not be displayed if a
handler transfers control. Transfer can be achieved by establishing
an exiting handler that transfers control to
with_handlers()
). In this case, the current function
stops and execution resumes at the point where handlers were
established.
Since it is often desirable to continue normally after a message or
warning, both warn()
and inform()
(and their base R
equivalent) establish a muffle restart where handlers can jump to
prevent the message from being displayed. Execution resumes
normally after that. See rst_muffle()
to jump to a
muffling restart, and the muffle
argument of
inplace()
for creating a muffling handler.