Thank you, Duncan, especially for the hint concerning "inherits".
Heinz At 08:02 26.05.2007 -0400, Duncan Murdoch wrote: >On 26/05/2007 7:13 AM, Heinz Tuechler wrote: >> Dear All, >> >> To check if an url exists, I can use try(). This works, as I expected, if I >> do it directly, as in the first part of the following example, but I could >> not find a way to do it from within a function, as in the second part. >> >> Where could I find information on how to do this? >> >> Thanks, >> Heinz >> >> >> ## set nonexisting url >> url.string <- 'http://www.google.at/nonexist.html' >> >> ## first part >> 1 # to start with defined .Last.value >> try(con.url <- url(url.string, open='rb')) >> class.try.res <- class(.Last.value) >> try.error <- class.try.res== 'try-error' >> print(try.error) # TRUE >> try(close(con.url)) >> >> ## try() within a function >> url.error <- function(url.string) { >> 1 # to start with defined .Last.value >> try(con.url <- url(url.string, open='rb')) >> class.try.res <- class(.Last.value) >> try.error <- class.try.res== 'try-error' > >.Last.value isn't set until your function returns. You should write this as > >con.url <- try(url(url.string, open='rb')) >try.error <- inherits(con.url, "try-error") > >Notice that I used "inherits", rather than testing for equality. It's >documented that the result of try() will be "of class 'try-error'" if an >error occurs, but there may be circumstances (in the future?) where >different types of errors are signalled by using a more complicated class. > >Duncan Murdoch > >> print(try.error) >> try(close(con.url)) >> invisible(try.error) >> } >> >> ## call the function >> url.error(url.string) # result -> FALSE >> >> ______________________________________________ >> R-help@stat.math.ethz.ch mailing list >> 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. > ______________________________________________ R-help@stat.math.ethz.ch mailing list 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.