rlang (version 1.1.3)

cnd: Create a condition object

Description

These constructors create subclassed conditions, the objects that power the error, warning, and message system in R.

  • cnd() creates bare conditions that only inherit from condition.

  • Conditions created with error_cnd(), warning_cnd(), and message_cnd() inherit from "error", "warning", or "message".

  • error_cnd() creates subclassed errors. See "rlang_error".

Use cnd_signal() to emit the relevant signal for a particular condition class.

Usage

cnd(class, ..., message = "", call = NULL, use_cli_format = NULL)

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

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

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

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.

call

A function call to be included in the error message. If an execution environment of a running function, the corresponding function call is retrieved.

use_cli_format

Whether to use the cli package to format message. See local_use_cli().

trace

A trace object created by trace_back().

parent

A parent condition object.

See Also

cnd_signal(), try_fetch().

Examples

Run this code
# Create a condition inheriting only from the S3 class "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 transfers control
# to the handler
with_handlers(cnd_signal(cnd), foo = function(c) "caught!")
tryCatch(cnd_signal(cnd), foo = function(c) "caught!")

Run the code above in your browser using DataLab