I don't want to return a value, I want to interrupt the computation, that's why I need to re-throw . But before getting back to the user I want to run some cleanup code.
G. On Sat, Jul 28, 2018 at 5:59 PM Iñaki Úcar <i.uca...@gmail.com> wrote: > > El sáb., 28 jul. 2018 a las 18:30, Gábor Csárdi > (<csardi.ga...@gmail.com>) escribió: > > > > Anyone knows a way to re-throw a caught interrupt condition, so that > > it behaves just like the original one? I.e. no error message is > > printed, but the execution is stopped of course. With just calling > > stop in the error handler, it prints the error message, or, if there > > is no error message (like in the original interrupt condition), > > another error happens. > > > > tryCatch(Sys.sleep(100), interrupt = function(e) { e$message <- > > "interrupted"; stop(e) } ) > > <press CTRL + C / ESC here> > > #> Error: interrupted > > > > tryCatch(Sys.sleep(100), interrupt = function(e) stop(e)) > > <press CTRL + C / ESC here> > > #> Error in stop(e) : bad error message > > Sorry, I probably misunderstood your intention, but... simply by not > calling stop at all? This is what I see: > > > tryCatch(Sys.sleep(100), interrupt = function(e) do_something <<- 1) > <press CTRL + C / ESC here> > ^C> > > do_something > [1] 1 > > Iñaki ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel