| global_entrace {rlang} | R Documentation |
Entrace unexpected errors
Description
global_entrace() enriches base errors, warnings, and messages
with rlang features.
They are assigned a backtrace. You can configure whether to display a backtrace on error with the rlang_backtrace_on_error global option.
They are recorded in
last_error(),last_warnings(), orlast_messages(). You can inspect backtraces at any time by calling these functions.
Set global entracing in your RProfile with:
rlang::global_entrace()
Usage
global_entrace(enable = TRUE, class = c("error", "warning", "message"))
Arguments
enable |
Whether to enable or disable global handling. |
class |
A character vector of one or several classes of conditions to be entraced. |
Inside RMarkdown documents
Call global_entrace() inside an RMarkdown document to cause
errors and warnings to be promoted to rlang conditions that include
a backtrace. This needs to be done in a separate setup chunk before
the first error or warning.
This is useful in conjunction with
rlang_backtrace_on_error_report and
rlang_backtrace_on_warning_report. To get full entracing in an
Rmd document, include this in a setup chunk before the first error
or warning is signalled.
```{r setup}
rlang::global_entrace()
options(rlang_backtrace_on_warning_report = "full")
options(rlang_backtrace_on_error_report = "full")
```
Under the hood
On R 4.0 and newer, global_entrace() installs a global handler
with globalCallingHandlers(). On older R versions, entrace() is
set as an option(error = ) handler. The latter method has the
disadvantage that only one handler can be set at a time. This means
that you need to manually switch between entrace() and other
handlers like recover(). Also this causes a conflict with IDE
handlers (e.g. in RStudio).