Friendlier try catch functions
try_catch(expr, .e = NULL, .w = NULL, .f = NULL)
try_catch_df(expr)
map_try_catch(l, fun, .e = NULL, .w = NULL, .f = NULL)
map_try_catch_df(l, fun)
for simple try catch, the expression to be evaluated
a one side formula or a function evaluated when an error occurs
a one side formula or a function evaluated when a warning occurs
a one side formula or an expression evaluated before returning or exiting
for map_* function, a list of arguments
for map_* function, a function to try with the list l
try_catch handles errors and warnings the way you specify. try_catch_df returns a tibble with the call, the error message if any, the warning message if any, and the value of the evaluated expression.
if (FALSE) { # \dontrun{
try_catch(log("a"), .e = ~ paste0("There was an error: ", .x))
try_catch(log(1), .f = ~ print("finally"))
try_catch(log(1), .f = function() print("finally"))
map_try_catch(list(1, 2, "a"), log, .e = ~ paste0("There was an error: ", .x))
map_try_catch_df(list(1, 2, "a"), log)
} # }