cnd {rlang} | R Documentation |
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.
cnd(.subclass, ..., message = "") error_cnd(.subclass = NULL, ..., message = "", trace = NULL, parent = NULL) warning_cnd(.subclass = NULL, ..., message = "") message_cnd(.subclass = NULL, ..., message = "")
.subclass |
The condition subclass. |
... |
Named data fields stored inside the condition object. These dots are evaluated with explicit splicing. |
message |
A default message to inform the user about the condition when it is signalled. |
trace |
A |
parent |
A parent condition object created by |
cnd()
creates objects inheriting from condition
. Conditions
created with error_cnd()
, warning_cnd()
and message_cnd()
inherit from error
, warning
or message
.
The .type
and .msg
arguments have been renamed to .subclass
and message
. They are deprecated as of rlang 0.3.0.
cnd_signal()
, with_handlers()
.
# Create a condition inheriting from the s3 type "foo": cnd <- cnd("foo") # Signal the condition to potential handlers. Since this is a bare # condition the signal has no effect if no handlers are set up: cnd_signal(cnd) # When a relevant handler is set up, the signal causes the handler # to be called: 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. # Signalling an error condition aborts the current computation: err <- error_cnd("foo", message = "I am an error") try(cnd_signal(err))