[R] Stop and call objects
William Dunlap
wdunlap at tibco.com
Wed Jan 5 19:14:50 CET 2011
> -----Original Message-----
> From: r-help-bounces at r-project.org
> [mailto:r-help-bounces at r-project.org] On Behalf Of Henrique
> Dallazuanna
> Sent: Wednesday, January 05, 2011 9:26 AM
> To: Sebastien Bihorel
> Cc: R-help
> Subject: Re: [R] Stop and call objects
>
> Try this:
>
> f <- function(x)
> tryCatch(sum(x),error=function(e)sprintf("Error in %s:
> %s", deparse(sys.call(1)), e$message))
> f('a')
The argument e to the error handler contains a call
component so you don't have to rely on the unreliable
sys.call(1) to get the offending call. E.g.,
> f2 <- function(x) {
tryCatch(sum(x),
error=function(e) {
sprintf("Error in %s: %s", deparse(e$call)[1], e$message)
}
)
}
> f2('char')
[1] "Error in sum(x): invalid 'type' (character) of argument"
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
> On Wed, Jan 5, 2011 at 12:23 PM, Sebastien Bihorel <
> Sebastien.Bihorel at cognigencorp.com> wrote:
>
> > Dear R-users,
> >
> > Let's consider the following snippet:
> >
> > f <- function(x) tryCatch(sum(x),error=function(e) stop(e))
> > f('a')
> >
> > As expected, the last call returns an error message: Error
> in sum(x) :
> > invalid 'type' (character) of argument
> >
> > My questions are the following:
> > 1- can I easily ask the stop function to reference the "f"
> function in
> > addition to "sum(x)" in the error message?
> > 2- If not, I guess I would have to extract the call and
> message objects
> > from e, coerce the call as a character object, build a
> custom string, and
> > pass it to the stop function using call.=F. How can I
> coerce a call object
> > to a character and maintain the "aspect" of the printed
> call (i.e. "sum(x)"
> > instead of the character vector "sum" "x" returned by
> as.character(e$call))?
> >
> > Thank you
> >
> > Sebastien
> >
> > ______________________________________________
> > R-help at r-project.org 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.
> >
>
>
>
> --
> Henrique Dallazuanna
> Curitiba-Paraná-Brasil
> 25° 25' 40" S 49° 16' 22" O
>
> [[alternative HTML version deleted]]
>
>
More information about the R-help
mailing list