try removing the outermost '{'...'}'. e.g., { warning = ... } should be 'warning = ...'. ---- 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.