Create a condition object.
These constructors make it easy to create subclassed conditions.
Conditions are objects that power the error system in R. They can
also be used for passing messages to pre-established handlers. See
vignette("conditions") for more information on how to use
the condition system.
new_cnd(.type = NULL, ..., .msg = NULL)cnd_error(.type = NULL, ..., .msg = NULL)cnd_warning(.type = NULL, ..., .msg = NULL)cnd_message(.type = NULL, ..., .msg = NULL)
- The condition subclass.
- Named data fields stored inside the condition object.
- A default message to inform the user about the condition when it is signalled.
new_cnd() creates objects inheriting from
condition. Conditions created with
cnd_message() inherit from
# Create a condition inheriting from the s3 type "foo": cnd <- new_cnd("foo") # Signal the condition to potential handlers. This has no effect if no # handler is registered to deal with conditions of type "foo": cnd_signal(cnd) # If a relevant handler is on the current evaluation stack, it will be # called by cnd_signal(): with_handlers(cnd_signal(cnd), foo = exiting(function(c) "caught!")) # Handlers can be thrown or executed inplace. See with_handlers() # documentation for more on this. # Note that merely signalling a condition inheriting of "error" is # not sufficient to stop a program: cnd_signal(cnd_error("my_error")) # you need to use stop() to signal a critical condition that should # terminate the program if not handled: # stop(cnd_error("my_error"))