error_cnd {rlang}R Documentation

Create a condition object

Description

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.

Usage

error_cnd(class = NULL, ..., message = "", trace = NULL, parent = NULL)

cnd(class, ..., message = "")

warning_cnd(class = NULL, ..., message = "")

message_cnd(class = NULL, ..., message = "")

Arguments

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 trace object created by trace_back().

parent

A parent condition object created by abort().

Details

cnd() creates objects inheriting from condition. Conditions created with error_cnd(), warning_cnd() and message_cnd() inherit from error, warning or message.

See Also

cnd_signal(), with_handlers().

Examples

# 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))

[Package rlang version 0.4.9 Index]