[Rd] Exit status of Rscript when setting options(error=utils::recover)

comic fans com|c|@n@44 @end|ng |rom gm@||@com
Mon Mar 18 04:44:08 CET 2019


Thanks for explanation,  so recover in non-interactive session exit
with 0 is expected behavior .
dump.frames said that it always write to file (workspace , or specified file).
I have a R script run as a auto build stage, so I want to print detail
backtrace to console
 (with source file, line number)  for quickly debug, without saving any dump.
I tried

options(error= quote({utils::recover;q(status=1)}))

it do exit with 1 when script has error, but it only shows a stripped
call trace like

Calls: a ... a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> apply

instead of
...
99: rec.R#5: a(v, depth - 1)
100: rec.R#5: a(v, depth - 1)
101: rec.R#5: a(v, depth - 1)
102: rec.R#5: a(v, depth - 1)
103: rec.R#5: a(v, depth - 1)

How can I resolve this ? Thanks for advise


On Fri, Mar 15, 2019 at 10:10 PM Tomas Kalibera
<tomas.kalibera using gmail.com> wrote:
>
>
> Please refer to the documentation (?stop, ?recover, ?dump.frames). In
> non-interactive use, recover() works as dump.frames(). dump.frames() is
> documented not to quit R, and the examples show how to quit the R
> session with a given status automatically after dump.frames(). So in
> line with the documentation, R continues after the error, it reaches the
> end of the input, and returns 0.
>
> When you run the example with the NULL default error handler (not
> setting the error option), the exit status is 1 as documented in ?stop.
>
> To avoid surprise wrt to the exit status or where execution continues,
> it is best not to set default error handlers in non-interactive use (or
> set them so that they exit the session with a given exit status).
>
> Tomas
>
> On 3/10/19 4:15 AM, comic fans wrote:
> > Hello, I've noticed that Rscript didn't exit with error code if I set
> > options error = utils::recover in .Rprofile . for example
> >
> > Rscript -e "asdf"
> >
> > Error: object 'asdf' not found
> > No suitable frames for recover()
> >
> > echo $?
> > 0
> >
> > if didn't set options in .Rprofile, Rscript exit with error code 1, is
> > this expected behavior ?
> >
> > ______________________________________________
> > R-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
>
>



More information about the R-devel mailing list