[R] Difficulty using the tryCatch() function

phii m@iii@g oii phiiipsmith@c@ phii m@iii@g oii phiiipsmith@c@
Sun Feb 7 20:30:59 CET 2021


I need help using the tryCatch function. I have a function and I want to 
surround it with tryCatch to catch errors and thereby avoid stopping 
execution of my program if the function fails. In my reproducible 
example below I have used a very simply function that just adds two 
numbers together. My function, called Adn, compiles, but when executed 
it generates the message: "Error in tryCatch({ : condition handlers must 
be specified with a condition class". I do not understand the error 
message.

# Reproducible example for using tryCatch

Adn <- function(x,y) {
   out <- tryCatch(
     {
       x+y
     },
     {
       warning = function(cond) {
         message("There was a warning.")
         message("Here is the original warning message:")
         message(cond)
         return(100)
       }
     },
     {
       error = function(cond) {
         message("There was an error.")
         message("Here is the original error message:")
         message(cond)
         return(200)
       }
     },
     finally = {
       message("Error handling done.")
     }
   )
   if (out==100 | out==200) { z <- 0 }
   else { z <- x+y }
   return(z)
}
(result <- Adn(1,sqrt(2))) # should work fine
(result <- Adn(1,sqrt(-2))) # should catch a warning and set z to 0
(result <- Adn(1,"a")) # should catch an error and set z to 0



More information about the R-help mailing list