capture error messages from loading shared objects
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 <williamwdunlap at 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.adrian at 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.r00t at gmail.com> wrote:
? Tue, 28 Nov 2023 10:46:45 +0100 Adrian Dusa <dusa.adrian at 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 at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[[alternative HTML version deleted]]
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel