From 0089686ab91bf2113abff1e8c52d12a248ee6c5a Mon Sep 17 00:00:00 2001 From: unknown <ldecicco@usgs.gov> Date: Wed, 10 Sep 2014 16:57:33 -0500 Subject: [PATCH] Added better error handling. --- R/getWQPSites.R | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/R/getWQPSites.R b/R/getWQPSites.R index 2cf54c6d..bbaf5b3a 100644 --- a/R/getWQPSites.R +++ b/R/getWQPSites.R @@ -30,6 +30,36 @@ getWQPSites <- function(...){ urlCall, "&mimeType=tsv",sep = "") - retval <- suppressWarnings(read.delim(urlCall, header = TRUE, quote="\"", dec=".", sep='\t', colClasses=c('character'), fill = TRUE)) - return(retval) + retval = tryCatch({ + h <- basicHeaderGatherer() + doc <- getURL(urlCall, headerfunction = h$update) + + }, warning = function(w) { + message(paste("URL caused a warning:", urlCall)) + message(w) + }, error = function(e) { + message(paste("URL does not seem to exist:", urlCall)) + message(e) + return(NA) + }) + + numToBeReturned <- as.numeric(h$value()["Total-Site-Count"]) + + if (!is.na(numToBeReturned) | numToBeReturned != 0){ + + retval <- read.delim(textConnection(doc), header = TRUE, quote="\"", + dec=".", sep='\t', + colClasses=c('character'), + fill = TRUE) + actualNumReturned <- nrow(retval) + + if(actualNumReturned != numToBeReturned) warning(numToBeReturned, " sample results were expected, ", actualNumReturned, " were returned") + + return(retval) + + } else { + warning("No data to retrieve") + return(NA) + } + } -- GitLab