Adapted from demo(error.catching):
> W=list()
> withCallingHandlers(foo(), warning=function(w) { W <<- c(W, list(w));
> invokeRestart("muffleWarning") })
> str(W)
List of 2
$ :List of 2
..$ message: chr "warning 1"
..$ call : language foo()
..- attr(*, "class")= chr [1:3] "simpleWarning" "warning" "condition"
$ :List of 2
..$ message: chr "warning 2"
..$ call : language foo()
..- attr(*, "class")= chr [1:3] "simpleWarning" "warning" "condition"
Cheers,
Simon
> On Dec 3, 2021, at 10:02 AM, Fox, John <[email protected]> wrote:
>
> Dear R-devel list members,
>
> Is it possible to capture more than one warning message using tryCatch()? The
> answer may be in ?conditions, but, if it is, I can't locate it.
>
> For example, in the following only the first warning message is captured and
> reported:
>
>> foo <- function(){
> + warning("warning 1")
> + warning("warning 2")
> + }
>
>> foo()
> Warning messages:
> 1: In foo() : warning 1
> 2: In foo() : warning 2
>
>> bar <- function(){
> + tryCatch(foo(), warning=function(w) print(w))
> + }
>
>> bar()
> <simpleWarning in foo(): warning 1>
>
> Is there a way to capture "warning 2" as well?
>
> Any help would be appreciated.
>
> John
>
> --
> John Fox, Professor Emeritus
> McMaster University
> Hamilton, Ontario, Canada
> Web: http://socserv.mcmaster.ca/jfox/
>
>
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel