From bb186aa30e265466f1152b962d5ffc069a5aac85 Mon Sep 17 00:00:00 2001
From: unknown <ldecicco@usgs.gov>
Date: Thu, 11 Sep 2014 09:34:44 -0500
Subject: [PATCH] Added error handling.

---
 R/getWaterML2Data.r | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/R/getWaterML2Data.r b/R/getWaterML2Data.r
index 60d4c8fa..bd473da6 100644
--- a/R/getWaterML2Data.r
+++ b/R/getWaterML2Data.r
@@ -12,7 +12,25 @@
 #' dataReturned3 <- getWaterML2Data(URL)
 getWaterML2Data <- function(obs_url){
   
-  doc <- xmlTreeParse(obs_url, getDTD = FALSE, useInternalNodes = TRUE)
+  doc = tryCatch({
+    returnedDoc <- getURI(obs_url, headerfunction = h$update)
+    if(h$value()["Content-Type"] == "text/xml;charset=UTF-8"){
+      xmlTreeParse(returnedDoc, getDTD = FALSE, useInternalNodes = TRUE)
+    } else {
+      message(paste("URL caused an error:", obs_url))
+      message("Content-Type=",h$value()["Content-Type"])
+      return(NA)
+    }   
+    
+  }, warning = function(w) {
+    message(paste("URL caused a warning:", obs_url))
+    message(w)
+  }, error = function(e) {
+    message(paste("URL does not seem to exist:", obs_url))
+    message(e)
+    return(NA)
+  }) 
+  
   doc <- xmlRoot(doc)
   
   ns <- xmlNamespaceDefinitions(doc, simplify = TRUE)  
-- 
GitLab