Careful; tryCatch() on non-error conditions will break out of what's evaluated, e.g.
res <- tryCatch({ cat("1\n") message("2") cat("3\n") 42 }, message = identity) will output '1' but not '3', because it returns as soon as the first message() is called. To "record" messages (same for warnings), use withCallingHandlers() instead, e.g. msgs <- list() res <- withCallingHandlers({ cat("1\n") message("2") cat("3\n") 42 }, message = function(m) { msgs <<- c(msgs, list(m)) invokeRestart("muffleMessage") }) This will output '1', muffle '2', output '3', and return 42, and 'msgs' holds > msgs [[1]] <simpleMessage in message("2"): 2 /Henrik On Tue, Nov 28, 2023 at 10:34 AM Bill Dunlap <williamwdun...@gmail.com> wrote: > > If you would like to save the error message instead of suppressing it, you > can use tryCatch(message=function(e)e, ...). > > -BIll > > On Tue, Nov 28, 2023 at 3:55 AM Adrian Dusa <dusa.adr...@unibuc.ro> wrote: > > > Once again, Ivan, many thanks. > > Yes, that does solve it. > > Best wishes, > > Adrian > > > > On Tue, Nov 28, 2023 at 11:28 AM Ivan Krylov <krylov.r...@gmail.com> > > wrote: > > > > > В Tue, 28 Nov 2023 10:46:45 +0100 > > > Adrian Dusa <dusa.adr...@unibuc.ro> пишет: > > > > > > > tryCatch(requireNamespace("foobar"), error = function(e) e) > > > > > > I think you meant loadNamespace() (which throws errors), not > > > requireNamespace() (which internally uses tryCatch(loadNamespace(...)) > > > and may or may not print the error depending on the `quietly` argument). > > > > > > -- > > > Best regards, > > > Ivan > > > > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel