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

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to