Skip to contents

Drop-in replacement for purrr::safely that captures errors and returns them in a structured format.

Usage

s_safely(.f, otherwise = NULL, quiet = TRUE)

Arguments

.f

A function to wrap for safe execution.

otherwise

Default return value when an error occurs.

quiet

Logical. Hide errors from console if TRUE.

Value

A function that returns a list with 'result' and 'error' components.

Examples

safe_log <- s_safely(log)
safe_log(10) # Returns list(result = 2.30, error = NULL)
#> $result
#> [1] 2.302585
#> 
#> $error
#> NULL
#> 
safe_log("a") # Returns list(result = NULL, error = <error>)
#> $result
#> NULL
#> 
#> $error
#> <simpleError in .f(...): non-numeric argument to mathematical function>
#>