| error_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.
error_cnd(class = NULL, ..., message = "", trace = NULL, parent = NULL) cnd(class, ..., message = "") warning_cnd(class = NULL, ..., message = "") message_cnd(class = NULL, ..., message = "")
class |
The condition subclass. |
... |
<dynamic> Named data fields stored inside the condition object. |
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.
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))