Signal an error, warning, or message

These functions are equivalent to base functions base::stop(), base::warning() and base::message(), but the type argument makes it easy to create subclassed conditions. They also don't include call information by default. This saves you from typing call. = FALSE to make error messages cleaner within package functions.

abort(msg, type = NULL, call = FALSE)

warn(msg, type = NULL, call = FALSE)

inform(msg, type = NULL, call = FALSE)


A message to display.


Subclass of the condition to signal.


Whether to display the call. If a number n, the call is taken from the nth frame on the call stack.


Like stop() and cnd_abort(), abort() signals a critical condition and interrupts execution by jumping to top level (see rst_abort()). Only a handler of the relevant type can prevent this jump by making another jump to a different target on the stack (see with_handlers()).

warn() and inform() both have the side effect of displaying a message. These messages will not be displayed if a handler transfers control. Transfer can be achieved by establishing an exiting handler that transfers control to with_handlers()). In this case, the current function stops and execution resumes at the point where handlers were established.

Since it is often desirable to continue normally after a message or warning, both warn() and inform() (and their base R equivalent) establish a muffle restart where handlers can jump to prevent the message from being displayed. Execution resumes normally after that. See rst_muffle() to jump to a muffling restart, and the muffle argument of inplace() for creating a muffling handler.

  • abort
  • warn
  • inform
Documentation reproduced from package rlang, version 0.2.2, License: GPL-3

Community examples

Looks like there are no examples yet.