He said to use options(error=...) instead of tryCatch(error=...). In C++ lingo, the handler set by options("error") is called when the exception is thrown while tryCatch's handler is called when it is caught.
Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-devel-boun...@r-project.org > [mailto:r-devel-boun...@r-project.org] On Behalf Of Vadim Ogranovich > Sent: Friday, October 15, 2010 11:45 AM > To: 'Joshua Ulrich' > Cc: r-devel@r-project.org > Subject: Re: [Rd] calling browser on error > > Joshua, > > I didn't know about 'recover', thank you! > > Anyway it doesn't work for me: > > tryCatch((function() { x <- 1; stop('ok') })(), error=recover()) > > Enter a frame number, or 0 to exit > > 1: tryCatch((function() { > > Selection: 1 > Called from: eval(expr, envir, enclos) > Browse[1]> x > Error: object 'x' not found > Browse[1]> Q > > Though it does work if I set options(error = recover): > > options(error = recover) > > (function() { x <- 1; stop('ok') })() > Error in (function() { : ok > > Enter a frame number, or 0 to exit > > 1: (function() { > > Selection: 1 > Called from: eval(expr, envir, enclos) > Browse[1]> x > [1] 1 > Browse[1]> Q > > I do not run the latest R so it might be the reason: > > version > _ > platform i386-pc-mingw32 > arch i386 > os mingw32 > system i386, mingw32 > status > major 2 > minor 9.1 > year 2009 > month 06 > day 26 > svn rev 48839 > language R > version.string R version 2.9.1 (2009-06-26) > > > -----Original Message----- > From: Joshua Ulrich [mailto:josh.m.ulr...@gmail.com] > Sent: Friday, October 15, 2010 1:31 PM > To: Vadim Ogranovich > Cc: r-devel@r-project.org > Subject: Re: [Rd] calling browser on error > > I believe options(error=recover) will do what you want. > > -- > Joshua Ulrich | FOSS Trading: www.fosstrading.com > > > > On Fri, Oct 15, 2010 at 1:27 PM, Vadim Ogranovich > <vogranov...@jumptrading.com> wrote: > > Dear R-developers, > > > > I am trying to figure out a way to call browser() when an > error occur, and naturally I want the browser() to be called > in the environment of the error. > > > > I tried something simple in vain: > > > >> f <- function() { x <- 1; stop('ok') } > >> tryCatch(f(), error=browser()) > > Called from: tryCatch(f(), error = browser()) > > ## if browser() was called in the local environment of f > then 'x' would be set, but it's not > > Browse[1]> x > > Error: object 'x' not found > > Browse[1]> Q > > > > Is there a way to make it work? What do people do to 'set > an on-error breakpoint'? > > > > Thanks, > > Vadim > > > > > > Note: This email is for the confidential use of the named > addressee(s) only and may contain proprietary, confidential > or privileged information. If you are not the intended > recipient, you are hereby notified that any review, > dissemination or copying of this email is strictly > prohibited, and to please notify the sender immediately and > destroy this email and any attachments. Email transmission > cannot be guaranteed to be secure or error-free. Jump > Trading, therefore, does not make any guarantees as to the > completeness or accuracy of this email or any attachments. > This email is for informational purposes only and does not > constitute a recommendation, offer, request or solicitation > of any kind to buy, sell, subscribe, redeem or perform any > type of transaction of a financial product. > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > > Note: This email is for the confidential use of the named > addressee(s) only and may contain proprietary, confidential > or privileged information. If you are not the intended > recipient, you are hereby notified that any review, > dissemination or copying of this email is strictly > prohibited, and to please notify the sender immediately and > destroy this email and any attachments. Email transmission > cannot be guaranteed to be secure or error-free. Jump > Trading, therefore, does not make any guarantees as to the > completeness or accuracy of this email or any attachments. > This email is for informational purposes only and does not > constitute a recommendation, offer, request or solicitation > of any kind to buy, sell, subscribe, redeem or perform any > type of transaction of a financial product. > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel