try package:base R Documentation _T_r_y _a_n _E_x_p_r_e_s_s_i_o_n _A_l_l_o_w_i_n_g _E_r_r_o_r _R_e_c_o_v_e_r_y _D_e_s_c_r_i_p_t_i_o_n: 'try' is a wrapper to run an expression that might fail and allow the user's code to handle error-recovery. _U_s_a_g_e: try(expr, silent = FALSE) _A_r_g_u_m_e_n_t_s: expr: an R expression to try. silent: logical: should the report of error messages be suppressed? _D_e_t_a_i_l_s: 'try' evaluates an expression and traps any errors that occur during the evaluation. If an error occurs then the error message is printed to the 'stderr' connection unless 'options("show.error.messages")' is false or the call includes 'silent = TRUE'. The error message is also stored in a buffer where it can be retrieved by 'geterrmessage'. (This should not be needed as the value returned in case of an error contains the error message.) 'try' is implemented using 'tryCatch'. _V_a_l_u_e: The value of the expression if 'expr' is evaluated without error, but an invisible object of class '"try-error"' containing the error message if it fails. _S_e_e _A_l_s_o: 'options' for setting error handlers and suppressing the printing of error messages; 'geterrmessage' for retrieving the last error message. 'tryCatch' provides another means of catching and handling errors. _E_x_a_m_p_l_e_s: ## this example will not work correctly in example(try), but ## it does work correctly if pasted in options(show.error.messages = FALSE) try(log("a")) print(.Last.value) options(show.error.messages = TRUE) ## alternatively, print(try(log("a"), TRUE)) ## run a simulation, keep only the results that worked. set.seed(123) x <- stats::rnorm(50) doit <- function(x) { x <- sample(x, replace=TRUE) if(length(unique(x)) > 30) mean(x) else stop("too few unique points") } ## alternative 1 res <- lapply(1:100, function(i) try(doit(x), TRUE)) ## alternative 2 ## Not run: res <- vector("list", 100) for(i in 1:100) res[[i]] <- try(doit(x), TRUE) ## End(Not run) unlist(res[sapply(res, function(x) !inherits(x, "try-error"))])